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
This commit is contained in:
normal 2018-06-24 12:36:44 +00:00
Родитель 042395a7f7
Коммит 4bbdb9ea19
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -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();