diff --git a/test/-ext-/thread/test_instrumentation_api.rb b/test/-ext-/thread/test_instrumentation_api.rb index a187a3c13f..dd620e7380 100644 --- a/test/-ext-/thread/test_instrumentation_api.rb +++ b/test/-ext-/thread/test_instrumentation_api.rb @@ -87,6 +87,5 @@ class TestThreadInstrumentation < Test::Unit::TestCase def assert_global_join_counters(counters) assert_equal THREADS_COUNT, counters.first - assert_include 0..THREADS_COUNT, counters.last # It's possible that a thread didn't execute its EXIT hook yet. end end diff --git a/thread.c b/thread.c index 7d1a4ee3fb..b9e9323801 100644 --- a/thread.c +++ b/thread.c @@ -631,6 +631,7 @@ thread_do_start(rb_thread_t *th) } void rb_ec_clear_current_thread_trace_func(const rb_execution_context_t *ec); +#define thread_sched_to_dead thread_sched_to_waiting static int thread_start_func_2(rb_thread_t *th, VALUE *stack_start) diff --git a/thread_none.c b/thread_none.c index 00004ed4dd..cf4658e571 100644 --- a/thread_none.c +++ b/thread_none.c @@ -30,8 +30,6 @@ thread_sched_to_waiting(struct rb_thread_sched *sched) { } -#define thread_sched_to_dead thread_sched_to_waiting - static void thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th) { diff --git a/thread_pthread.c b/thread_pthread.c index 8597479765..86ad279d7c 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -448,13 +448,6 @@ thread_sched_to_waiting(struct rb_thread_sched *sched) rb_native_mutex_unlock(&sched->lock); } -static void -thread_sched_to_dead(struct rb_thread_sched *sched) -{ - thread_sched_to_waiting(sched); - RB_INTERNAL_THREAD_HOOK(RUBY_INTERNAL_THREAD_EVENT_EXITED); -} - static void thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th) { @@ -1177,6 +1170,8 @@ thread_start_func_1(void *th_ptr) #else thread_start_func_2(th, &stack_start); #endif + + RB_INTERNAL_THREAD_HOOK(RUBY_INTERNAL_THREAD_EVENT_EXITED); } #if USE_THREAD_CACHE /* cache thread */ diff --git a/thread_win32.c b/thread_win32.c index 714d601340..81fea585ac 100644 --- a/thread_win32.c +++ b/thread_win32.c @@ -137,8 +137,6 @@ thread_sched_to_waiting(struct rb_thread_sched *sched) ReleaseMutex(sched->lock); } -#define thread_sched_to_dead thread_sched_to_waiting - static void thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th) {