summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2016-04-04 01:13:43 -0400
committerPaul Smith <psmith@gnu.org>2016-04-04 01:38:32 -0400
commit8b54c5cff98cd4b4533f4b4f10e82faca36c6880 (patch)
tree0051d40a3f0bbf1c76cbf365f090697753d0cf67
parent65c447289e863dfc3e6cdcf9ec0be00e284decc3 (diff)
* job.c (child_execute_job): Fix $(shell...) under NO_OUTPUT_SYNC.
* main.c (decode_output_sync_flags): Use NONE for NO_OUTPUT_SYNC.
-rw-r--r--job.c8
-rw-r--r--main.c4
-rw-r--r--output.c2
3 files changed, 7 insertions, 7 deletions
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