aboutsummaryrefslogtreecommitdiffstats
path: root/vm.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-09-06 11:43:46 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2022-09-06 15:42:02 +0900
commitf6925fab853ffc1872038f33d93e4e5c5379b4db (patch)
treea0dc7ae8b69a6b7092c4394344d3d68d2e354f10 /vm.c
parentf4dbfa0f04448386a662611682adf6b2219089a4 (diff)
downloadruby-f6925fab853ffc1872038f33d93e4e5c5379b4db.tar.gz
Do not fork the process on --mjit-wait
fork is for parallel compilation, but --mjit-wait cancels it. It's more useful to not fork it for binding.irb, debugging, etc.
Diffstat (limited to 'vm.c')
-rw-r--r--vm.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/vm.c b/vm.c
index 15b6fa3a57..0de461392f 100644
--- a/vm.c
+++ b/vm.c
@@ -393,8 +393,8 @@ mjit_check_iseq(rb_execution_context_t *ec, const rb_iseq_t *iseq, struct rb_ise
RB_DEBUG_COUNTER_INC(mjit_exec_not_added);
if (body->total_calls == mjit_opts.min_calls) {
rb_mjit_add_iseq_to_process(iseq);
- if (UNLIKELY(mjit_opts.wait)) {
- return rb_mjit_wait_call(ec, body);
+ if (UNLIKELY(mjit_opts.wait && (uintptr_t)body->jit_func > LAST_JIT_ISEQ_FUNC)) {
+ return body->jit_func(ec, ec->cfp);
}
}
break;