aboutsummaryrefslogtreecommitdiffstats
path: root/process.c
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
commit446ca1cb914bb677082cd5c6b5bd06551cf015cd (patch)
tree4b3ffe282afc2dd4c521d5561127e0933466db9a /process.c
parent6ecb852aae56d13a7fa0abc4f79259869e6bdb76 (diff)
downloadruby-446ca1cb914bb677082cd5c6b5bd06551cf015cd.tar.gz
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
Diffstat (limited to 'process.c')
-rw-r--r--process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/process.c b/process.c
index b37a37c084..12ea6eac86 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();