diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-04 01:41:55 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-12-04 01:41:55 +0000 |
commit | b0ec083a20c7b717492994f1ad7a03a97540f218 (patch) | |
tree | 04ddbc5d16950d864a579c8a8a7cac81ba5e7382 | |
parent | 5e8e1fcf87601d2f91a5d58b2a92c7b6089adddf (diff) |
process.c (retry_fork_async_signal_safe): fix -Wclobbered
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | process.c | 7 |
1 files changed, 4 insertions, 3 deletions
@@ -3925,11 +3925,11 @@ retry_fork_async_signal_safe(int *status, int *ep, volatile int try_gc = 1; struct child_handler_disabler_state old; int err; - rb_nativethread_lock_t *waitpid_lock; - - waitpid_lock = w && WAITPID_USE_SIGCHLD ? &GET_VM()->waitpid_lock : 0; + rb_nativethread_lock_t *const waitpid_lock_init = + (w && WAITPID_USE_SIGCHLD) ? &GET_VM()->waitpid_lock : 0; while (1) { + rb_nativethread_lock_t *waitpid_lock = waitpid_lock_init; prefork(); disable_child_handler_before_fork(&old); if (waitpid_lock) { @@ -3959,6 +3959,7 @@ retry_fork_async_signal_safe(int *status, int *ep, #endif } err = errno; + waitpid_lock = waitpid_lock_init; if (waitpid_lock) { if (pid > 0 && w != WAITPID_LOCK_ONLY) { w->pid = pid; |