diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-19 13:33:07 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-11-19 13:33:07 +0000 |
commit | e205cd80d2e4a4b77a06b74758dfd566d7c0b719 (patch) | |
tree | 64cd006976b962a3eb67e731c024a1498918f89d /process.c | |
parent | 759cfd3bcb9d940ed9c11330cc995aacc2e12fe4 (diff) |
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
Diffstat (limited to 'process.c')
-rw-r--r-- | process.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -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(); |