From 8f2e98798e10f8f9cdfe983bd2d2af36955248e4 Mon Sep 17 00:00:00 2001 From: usa Date: Mon, 30 Jul 2018 14:15:00 +0000 Subject: merge revision(s) 63741: [Backport #14868] 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/branches/ruby_2_4@64130 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'process.c') diff --git a/process.c b/process.c index 6d3b063b1a..40bc51f83e 100644 --- a/process.c +++ b/process.c @@ -3640,8 +3640,8 @@ retry_fork_ruby(int *status, struct child_handler_disabler_state *old) while (1) { prefork(); - before_fork_ruby(); disable_child_handler_before_fork(old); + before_fork_ruby(); pid = fork(); if (pid == 0) /* fork succeed, child process */ return pid; -- cgit v1.2.3