From 7f01830927969a8386050617385e59070fe9f34b Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Sun, 28 Apr 2013 01:19:19 -0400 Subject: Add support for per-job output sync. A new flag to the -O/--output-sync, "job", selects a per-job (that is, per line of a recipe) output synchronization. To support this move the close of the temp file out of the sync_output() function and don't do it until we free the child, since we may call sync_output() multiple times in a given recipe. When we set up for a new temp file, if we're in per-job mode we truncate the file and seek to the beginning to re-use it for every job. --- main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'main.c') diff --git a/main.c b/main.c index 0037587..be3d190 100644 --- a/main.c +++ b/main.c @@ -695,7 +695,11 @@ decode_output_sync_flags (void) { const char *p = *pp; - if (streq (p, "target")) + if (streq (p, "none")) + output_sync = OUTPUT_SYNC_NONE; + else if (streq (p, "job")) + output_sync = OUTPUT_SYNC_JOB; + else if (streq (p, "target")) output_sync = OUTPUT_SYNC_TARGET; else if (streq (p, "make")) output_sync = OUTPUT_SYNC_MAKE; -- cgit v1.2.3