diff options
author | Koichi Sasada <[email protected]> | 2022-05-20 16:04:10 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2022-05-20 17:37:59 +0900 |
commit | 37ea07d59be53bd447d2d87d9cd56f94d41a40dd (patch) | |
tree | 9289749e1cdb93e89e19a27d0574c87a324c2cee /vm.c | |
parent | eab99b1d4b61fb85d994534826922f96cd14ae58 (diff) |
setup vm->main_ractor before `Init_native_thread()`
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5922
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -3249,11 +3249,9 @@ rb_ec_clear_vm_stack(rb_execution_context_t *ec) } static void -th_init(rb_thread_t *th, VALUE self, rb_vm_t *vm, rb_ractor_t *r) +th_init(rb_thread_t *th, VALUE self, rb_vm_t *vm) { th->self = self; - th->vm = vm; - th->ractor = r; rb_threadptr_root_fiber_setup(th); @@ -3304,7 +3302,8 @@ rb_thread_alloc(VALUE klass) { VALUE self = thread_alloc(klass); rb_thread_t *target_th = rb_thread_ptr(self); - th_init(target_th, self, GET_VM(), GET_RACTOR()); + target_th->ractor = GET_RACTOR(); + th_init(target_th, self, target_th->vm = GET_VM()); return self; } @@ -3955,8 +3954,10 @@ Init_BareVM(void) // setup main thread th->nt = ZALLOC(struct rb_native_thread); + th->vm = vm; + th->ractor = vm->ractor.main_ractor = rb_ractor_main_alloc(); Init_native_thread(th); - th_init(th, 0, vm, vm->ractor.main_ractor = rb_ractor_main_alloc()); + th_init(th, 0, vm); rb_ractor_set_current_ec(th->ractor, th->ec); ruby_thread_init_stack(th); |