ruby-changes:72536
From: Jean <ko1@a...>
Date: Thu, 14 Jul 2022 02:40:03 +0900 (JST)
Subject: [ruby-changes:72536] 664c23db79 (master): GVL Instrumentation: remove the EXITED count assertion
https://git.ruby-lang.org/ruby.git/commit/?id=664c23db79 From 664c23db79dd0d500a834ef0ec8da443d95ddfd6 Mon Sep 17 00:00:00 2001 From: Jean Boussier <jean.boussier@g...> Date: Wed, 13 Jul 2022 18:49:27 +0200 Subject: GVL Instrumentation: remove the EXITED count assertion It's very flaky for some unknown reason. Something we have an extra EXITED event. I suspect some other test is causing this. --- test/-ext-/thread/test_instrumentation_api.rb | 1 - thread.c | 1 + thread_none.c | 2 -- thread_pthread.c | 9 ++------- thread_win32.c | 2 -- 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 https://github.com/ruby/ruby/blob/trunk/test/-ext-/thread/test_instrumentation_api.rb#L87 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) https://github.com/ruby/ruby/blob/trunk/thread.c#L631 } 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) https://github.com/ruby/ruby/blob/trunk/thread_none.c#L30 { } -#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) https://github.com/ruby/ruby/blob/trunk/thread_pthread.c#L448 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) https://github.com/ruby/ruby/blob/trunk/thread_pthread.c#L1170 #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) https://github.com/ruby/ruby/blob/trunk/thread_win32.c#L137 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) { -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/