From 84f8da11579b8b655505dc8abffc31c715784794 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 7 Jan 2007 09:47:52 +0000 Subject: * thread.c (rb_thread_stop_timer_thread(), rb_thread_reset_timer_thread(), rb_thread_start_timer_thread()): added. * thread_pthread.ci: add a native_thread_join() and move rb_thread_reset_timer_thread() definition to thread.c. * thread_win32.ci: ditto * process.c: fix before_exec(), after_exec() to stop timer thread (and restart timer thread if exec failed). and fix to reset timer thread information when forked child process starts (to fix [ruby-core:09822]). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- thread_win32.ci | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'thread_win32.ci') diff --git a/thread_win32.ci b/thread_win32.ci index 27550ccf01..2d1cddea18 100644 --- a/thread_win32.ci +++ b/thread_win32.ci @@ -259,6 +259,12 @@ native_thread_create(yarv_thread_t *th) return 0; } +static void +native_thread_join(HANDLE th) +{ + w32_wait_event(th, 0, 0); +} + static void native_thread_apply_priority(yarv_thread_t *th) { @@ -285,7 +291,7 @@ native_thread_interrupt(yarv_thread_t *th) static void timer_thread_function(void); -static HANDLE timer_thread_handle = 0; +static HANDLE timer_thread_id = 0; static unsigned int _stdcall timer_thread_func(void *dummy) @@ -302,16 +308,9 @@ timer_thread_func(void *dummy) void rb_thread_create_timer_thread(void) { - if (timer_thread_handle == 0) { - timer_thread_handle = w32_create_thread(1024, timer_thread_func, 0); + if (timer_thread_id == 0) { + timer_thread_id = w32_create_thread(1024, timer_thread_func, 0); } } -void -rb_thread_reset_timer_thread(void) -{ - timer_thread_handle = 0; - rb_thread_create_timer_thread(); -} - #endif /* THREAD_SYSTEM_DEPENDENT_IMPLEMENTATION */ -- cgit v1.2.3