Permalink
Browse files

* thread_win32.c (native_thread_destroy): decreased the probability of

  using the interrupt event in the thread termination.
  see [ruby-core:27199].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
unak committed Dec 30, 2009
1 parent 5bc85d6 commit 9f90682c4b60bf9788b94ccb107ac6b8a5cc5f7e
Showing with 7 additions and 2 deletions.
  1. +6 −0 ChangeLog
  2. +1 −2 thread_win32.c
View
@@ -1,3 +1,9 @@
+Thu Dec 31 03:27:53 2009 NAKAMURA Usaku <usa@ruby-lang.org>
+
+ * thread_win32.c (native_thread_destroy): decreased the probability of
+ using the interrupt event in the thread termination.
+ see [ruby-core:27199].
+
Thu Dec 31 02:35:57 2009 NAKAMURA Usaku <usa@ruby-lang.org>
* thread_win32.c (w32_error): should report the function.
View
@@ -449,10 +449,9 @@ native_thread_init_stack(rb_thread_t *th)
static void
native_thread_destroy(rb_thread_t *th)
{
- HANDLE intr = th->native_thread_data.interrupt_event;
+ 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);
- th->native_thread_data.interrupt_event = 0;
w32_close_handle(intr);
}

0 comments on commit 9f90682

Please sign in to comment.