summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/-ext-/thread/test_instrumentation_api.rb1
-rw-r--r--thread.c1
-rw-r--r--thread_none.c2
-rw-r--r--thread_pthread.c9
-rw-r--r--thread_win32.c2
5 files changed, 3 insertions, 12 deletions
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
@@ -449,13 +449,6 @@ thread_sched_to_waiting(struct rb_thread_sched *sched)
}
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)
{
rb_thread_t *next;
@@ -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)
{