From 128bf385b1e8256e412d732fa9b80ecd7c5e2c73 Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Tue, 11 Aug 2015 08:53:12 -0700 Subject: 36104: change order of child_block() and dont_queue_signals() to resolve yet another race condition --- Src/jobs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Src/jobs.c') diff --git a/Src/jobs.c b/Src/jobs.c index 933348851..ed647b87e 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -1420,9 +1420,9 @@ zwaitjob(int job, int wait_cmd) int q = queue_signal_level(); Job jn = jobtab + job; - dont_queue_signals(); child_block(); /* unblocked during signal_suspend() */ queue_traps(wait_cmd); + dont_queue_signals(); if (jn->procs || jn->auxprocs) { /* if any forks were done */ jn->stat |= STAT_LOCKED; if (jn->stat & STAT_CHANGED) @@ -1478,9 +1478,9 @@ zwaitjob(int job, int wait_cmd) pipestats[0] = lastval; numpipestats = 1; } + restore_queue_signals(q); unqueue_traps(); child_unblock(); - restore_queue_signals(q); return 0; } -- cgit 1.4.1