aboutsummaryrefslogtreecommitdiffstats
path: root/mjit.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2021-01-03 00:05:00 -0800
committerTakashi Kokubun <takashikkbn@gmail.com>2021-01-03 00:05:38 -0800
commit4724bf856f30e8cc56795c0dc23b96e7ae68e874 (patch)
tree501baee61f328889e4d6010feb3308472424f55f /mjit.c
parent09ec8d686654462e55b2c60e2860754d1fa3435f (diff)
downloadruby-4724bf856f30e8cc56795c0dc23b96e7ae68e874.tar.gz
Avoid hanging on --jit-wait after MJIT.pause
When a worker is stopped, nobody will JIT a method for you.
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 b98f742068..4dad74641b 100644
--- a/mjit.c
+++ b/mjit.c
@@ -328,6 +328,9 @@ mjit_wait(struct rb_iseq_constant_body *body)
VALUE
rb_mjit_wait_call(rb_execution_context_t *ec, struct rb_iseq_constant_body *body)
{
+ if (worker_stopped)
+ return Qundef;
+
mjit_wait(body);
if ((uintptr_t)body->jit_func <= (uintptr_t)LAST_JIT_ISEQ_FUNC) {
return Qundef;