diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | thread.c | 1 | ||||
-rw-r--r-- | thread_pthread.c | 1 | ||||
-rw-r--r-- | thread_win32.c | 1 |
4 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,12 @@ +Tue Dec 21 00:59:40 2010 KOSAKI Motohiro <[email protected]> + + * thread.c (thread_cleanup_func): Moved interrupted_lock + destroying code from native_thread_destroy() to + thread_cleanup_func() because it's platform independent logic. + + * thread_win32.c (native_thread_destroy): ditto. + * thread_pthread.c (native_thread_destroy): ditto. + Tue Dec 21 00:46:20 2010 KOSAKI Motohiro <[email protected]> * thread.c (thread_cleanup_func): Don't touch native threading @@ -406,6 +406,7 @@ thread_cleanup_func(void *th_ptr, int atfork) if (atfork) return; + native_mutex_destroy(&th->interrupt_lock); native_thread_destroy(th); } diff --git a/thread_pthread.c b/thread_pthread.c index dcd1a724bf..aabf36de42 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -339,7 +339,6 @@ native_thread_init(rb_thread_t *th) static void native_thread_destroy(rb_thread_t *th) { - pthread_mutex_destroy(&th->interrupt_lock); pthread_cond_destroy(&th->native_thread_data.gvl_cond); pthread_cond_destroy(&th->native_thread_data.sleep_cond); } diff --git a/thread_win32.c b/thread_win32.c index 26516e4cf3..62ba5bbab5 100644 --- a/thread_win32.c +++ b/thread_win32.c @@ -511,7 +511,6 @@ static void native_thread_destroy(rb_thread_t *th) { HANDLE intr = InterlockedExchangePointer(&th->native_thread_data.interrupt_event, 0); - native_mutex_destroy(&th->interrupt_lock); thread_debug("close handle - intr: %p, thid: %p\n", intr, th->thread_id); w32_close_handle(intr); } |