diff --git a/job.c b/job.c index 512240fd..62e2e56a 100644 --- a/job.c +++ b/job.c @@ -2026,8 +2026,7 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) int save_fdout = -1; int save_fderr = -1; -#ifndef NO_OUTPUT_SYNC - /* Divert child output if output_sync in use. */ + /* Divert child output if we want to capture output. */ if (out && out->syncout) { if (out->out >= 0) @@ -2035,7 +2034,6 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) if (out->err >= 0) fderr = out->err; } -#endif /* For each FD which needs to be redirected first make a dup of the standard FD to save and mark it close on exec so our child won't see it. Then @@ -2124,8 +2122,7 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) int fdout = FD_STDOUT; int fderr = FD_STDERR; -#ifndef NO_OUTPUT_SYNC - /* Divert child output if output_sync in use. */ + /* Divert child output if we want to capture it. */ if (out && out->syncout) { if (out->out >= 0) @@ -2133,7 +2130,6 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp) if (out->err >= 0) fderr = out->err; } -#endif pid = vfork(); if (pid != 0) diff --git a/main.c b/main.c index b9c2b1f7..bf8fb0dc 100644 --- a/main.c +++ b/main.c @@ -795,6 +795,9 @@ decode_debug_flags (void) static void decode_output_sync_flags (void) { +#ifdef NO_OUTPUT_SYNC + output_sync = OUTPUT_SYNC_NONE; +#else if (output_sync_option) { if (streq (output_sync_option, "none")) @@ -812,6 +815,7 @@ decode_output_sync_flags (void) if (sync_mutex) RECORD_SYNC_MUTEX (sync_mutex); +#endif } #ifdef WINDOWS32 diff --git a/output.c b/output.c index fef7ab23..7e905cc3 100644 --- a/output.c +++ b/output.c @@ -344,7 +344,7 @@ setup_tmpfile (struct output *out) /* If we failed to create a temp file, disable output sync going forward. */ error: output_close (out); - output_sync = 0; + output_sync = OUTPUT_SYNC_NONE; } /* Synchronize the output of jobs in -j mode to keep the results of