aboutsummaryrefslogtreecommitdiffstats
path: root/ractor.c
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2023-12-20 15:29:03 -0800
committerJohn Hawthorn <john@hawthorn.email>2023-12-21 09:17:22 -0800
commit1f0304218cf00e05a4a126196676ba221ebf91f6 (patch)
tree15174265cdfebc33f9350ee66fc695cd012d0a36 /ractor.c
parent1710eb9367d7d11f059a17879e00ef7637265558 (diff)
downloadruby-1f0304218cf00e05a4a126196676ba221ebf91f6.tar.gz
Use main_thread->ec from rb_vm_main_ractor_ec
rb_vm_main_ractor_ec was introduced to allow rb_postponed_job_* to work when fired on non-Ruby threads, which have no EC set, and that is its only use. When RUBY_MN_THREADS=1 is set ractor->threads.running_ec is NULL when the shared thread is sleeping. This instead grabs the EC directly from the main thread which seems to always be set. Fixes [Bug #20016] Co-authored-by: Dustin Brown <dbrown9@gmail.com>
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ractor.c b/ractor.c
index 8362f2f332..f07dd7c8e5 100644
--- a/ractor.c
+++ b/ractor.c
@@ -2481,7 +2481,7 @@ rb_ractor_terminate_all(void)
rb_execution_context_t *
rb_vm_main_ractor_ec(rb_vm_t *vm)
{
- return vm->ractor.main_ractor->threads.running_ec;
+ return vm->ractor.main_thread->ec;
}
static VALUE