diff --git a/ChangeLog b/ChangeLog index 7d673bbdf7..398e0e6366 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 24 12:15:02 2013 KOSAKI Motohiro + + * thread.c (rb_thread_terminate_all): add a comment why infinite + sleep is safe. + Thu Oct 24 07:41:42 2013 Aman Gupta * gc.c: add new initial_growth_max tuning parameter. diff --git a/thread.c b/thread.c index f33e630afb..757fca203b 100644 --- a/thread.c +++ b/thread.c @@ -440,6 +440,10 @@ rb_thread_terminate_all(void) TH_PUSH_TAG(th); if ((state = TH_EXEC_TAG()) == 0) { + /* + * Thread exiting routine in thread_start_func_2 notify + * me when the last sub-thread exit. + */ native_sleep(th, 0); RUBY_VM_CHECK_INTS_BLOCKING(th); }