summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-24 12:36:44 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-24 12:36:44 +0000
commit4bbdb9ea19321d1aa09a6df52861d25ccce54d4f (patch)
tree4b3ffe282afc2dd4c521d5561127e0933466db9a
parent042395a7f7262464265ce70cdffbe1812aa145d3 (diff)
process.c (ruby_fork_ruby): fix race in signal handling
We must block signals before stopping timer-thread, otherwise signal handing may be delayed until (and if) another signal is received after timer-thread is restarted. [ruby-core:87622] [Bug #14868] [Bug #13916] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/process.c b/process.c
index b37a37c..12ea6ea 100644
--- a/process.c
+++ b/process.c
@@ -3690,8 +3690,8 @@ rb_fork_ruby(int *status)
while (1) {
prefork();
- before_fork_ruby();
disable_child_handler_before_fork(&old);
+ before_fork_ruby();
pid = fork();
err = errno;
after_fork_ruby();