summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-20 15:20:17 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-20 15:20:17 +0000
commit1ff6a1953cafbec8ec93fe07112599f59c7cb873 (patch)
tree804f735fd5dc34718936f8f2500d3b6888bfeb3b
parent49fbf28b4579e15676e7371e4734f32d6392a0f4 (diff)
* 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. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--thread.c1
-rw-r--r--thread_pthread.c1
-rw-r--r--thread_win32.c1
4 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f3801b51e..cf78804c5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Tue Dec 21 00:59:40 2010 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * 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 <kosaki.motohiro@gmail.com>
* thread.c (thread_cleanup_func): Don't touch native threading
diff --git a/thread.c b/thread.c
index c46a5bc445..dbe837fcce 100644
--- a/thread.c
+++ b/thread.c
@@ -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);
}