summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-21 17:02:21 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-21 17:02:21 +0000
commitf80896c2192746c3d3c5d6300c6412e69a3e3d7d (patch)
treecb9a280504c0665637c46110619a4f58ba12d27c
parentbf8826c510adee31805b41df2713df54379c61e9 (diff)
* thread_pthread.c (ubf_select): activate timer thread when interrupt
blocking thread. A patch created by Koichi Sasada. [ruby-core:39634] [Bug #5343] to cover race condition, timer thread periodically send SIGVTARLM to threads in signal thread list. so you should activate timer thread when interrupt a thread. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog9
-rw-r--r--thread_pthread.c1
2 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b7af797b1c..2963027f39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Thu Sep 22 01:52:48 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
+
+ * thread_pthread.c (ubf_select): activate timer thread when interrupt
+ blocking thread.
+ A patch created by Koichi Sasada. [ruby-core:39634] [Bug #5343]
+ to cover race condition, timer thread periodically send SIGVTARLM to
+ threads in signal thread list. so you should activate timer thread
+ when interrupt a thread.
+
Wed Sep 21 16:55:26 2011 NAKAMURA Usaku <usa@ruby-lang.org>
* test/io/wait/test_io_wait.rb (TestIOWait#setup): of course, the
diff --git a/thread_pthread.c b/thread_pthread.c
index 6d700051a8..afc86ca035 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -1013,6 +1013,7 @@ ubf_select(void *ptr)
{
rb_thread_t *th = (rb_thread_t *)ptr;
add_signal_thread_list(th);
+ rb_thread_wakeup_timer_thread(); /* activate timer thread */
ubf_select_each(th);
}