summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thread.c1
-rw-r--r--thread_none.c2
-rw-r--r--thread_pthread.c9
-rw-r--r--thread_win32.c2
4 files changed, 11 insertions, 3 deletions
diff --git a/thread.c b/thread.c
index d62653679a..c229d4df6c 100644
--- a/thread.c
+++ b/thread.c
@@ -635,7 +635,6 @@ 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 a82ced684e..253a8dd518 100644
--- a/thread_none.c
+++ b/thread_none.c
@@ -34,6 +34,8 @@ 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 944570767e..693d8f10e8 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
@@ -450,6 +450,13 @@ thread_sched_to_waiting(struct rb_thread_sched *sched)
}
static void
+thread_sched_to_dead(struct rb_thread_sched *sched)
+{
+ RB_INTERNAL_THREAD_HOOK(RUBY_INTERNAL_THREAD_EVENT_EXITED);
+ thread_sched_to_waiting(sched);
+}
+
+static void
thread_sched_yield(struct rb_thread_sched *sched, rb_thread_t *th)
{
rb_thread_t *next;
@@ -1171,8 +1178,6 @@ 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 e9deff23cc..b5d10e2200 100644
--- a/thread_win32.c
+++ b/thread_win32.c
@@ -131,6 +131,8 @@ thread_sched_to_running(struct rb_thread_sched *sched, rb_thread_t *th)
if (GVL_DEBUG) fprintf(stderr, "gvl acquire (%p): acquire\n", th);
}
+#define thread_sched_to_dead thread_sched_to_waiting
+
static void
thread_sched_to_waiting(struct rb_thread_sched *sched)
{