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>
This commit is contained in:
parent
1710eb9367
commit
1f0304218c
2
ractor.c
2
ractor.c
@ -2481,7 +2481,7 @@ rb_ractor_terminate_all(void)
|
|||||||
rb_execution_context_t *
|
rb_execution_context_t *
|
||||||
rb_vm_main_ractor_ec(rb_vm_t *vm)
|
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
|
static VALUE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user