From e205cd80d2e4a4b77a06b74758dfd566d7c0b719 Mon Sep 17 00:00:00 2001 From: k0kubun Date: Mon, 19 Nov 2018 13:33:07 +0000 Subject: process.c: do not run signal handler before fork to prevent from proceeding one for MJIT while it's not safe yet. By that situation, MJIT worker could be waiting for compiler process forever http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1468033 [Bug #15320] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'process.c') diff --git a/process.c b/process.c index b9c7c4a151..16387551d1 100644 --- a/process.c +++ b/process.c @@ -1506,8 +1506,9 @@ static void before_fork_ruby(void) { if (mjit_enabled) { - /* avoid leaving locked mutex and units being modified for child process. */ - mjit_pause(FALSE); + /* Avoid leaving locked mutex and units being modified for child process. Here may not be + safe for proceeding SIGCHLD handler, so this does not allow RUBY_VM_CHECK_INTS. */ + mjit_pause_without_ints(); } before_exec(); -- cgit v1.2.3