summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2020-03-20 06:12:36 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2020-03-20 06:12:36 +0000
commitc01e52eb715c1583f594a1c6e19de249f8e9b439 (patch)
treea21e6bcf4aef2cce913e1a107787d20a3e4d1e3e /mjit.c
parent1e4174b45c4b9c3d27ef68e532d58aae22457bbf (diff)
merge revision(s) adcf0316d1ecedae2a9157ad941550e0c0fb510b: [Backport #16664]
Prevent unloading methods used in root_fiber while calling another Fiber (#2939) Fixing SEGVs like: http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744905 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744420 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2741400 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_6@67850 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mjit.c b/mjit.c
index a0310ae96c..b547277126 100644
--- a/mjit.c
+++ b/mjit.c
@@ -655,6 +655,9 @@ mjit_init(struct mjit_options *opts)
rb_native_cond_initialize(&mjit_worker_wakeup);
rb_native_cond_initialize(&mjit_gc_wakeup);
+ /* Make sure root_fiber's saved_ec is scanned by mark_ec_units */
+ rb_fiber_init_mjit_cont(GET_EC()->fiber_ptr);
+
/* Initialize class_serials cache for compilation */
valid_class_serials = rb_hash_new();
rb_obj_hide(valid_class_serials);