summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2019-09-26 12:53:41 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2019-09-26 16:28:34 +0900
commit5d8f112505fbc3f9b008ce4ec40fc74f9f623c4a (patch)
tree03ce4f788de6b9f6589890e3ded08a2d12cbc8d6 /mjit.c
parent47a234954a119c6957e947f5769c55d0b40c6004 (diff)
RubyVM::MJIT.pause(wait: true) should wait
for all compilations and compaction. Prior to this commit, the last-compiled code has not been used because MJIT worker is stopped before setting the code, and compaction has also been skipped. But it was not intentional and `wait: true` pause should wait until those two things by its feature.
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/mjit.c b/mjit.c
index 3ae9410179..69dc23442b 100644
--- a/mjit.c
+++ b/mjit.c
@@ -802,7 +802,9 @@ mjit_pause(bool wait_p)
}
}
+ mjit_pause_wait_p = wait_p; // Avoid cancelling the last compilation after the unit fetch if wait_p.
stop_worker();
+ mjit_pause_wait_p = false;
return Qtrue;
}