From cb64352c75f0da8979c9addd37b2b78bb97d5301 Mon Sep 17 00:00:00 2001 From: Frank Heckenbach Date: Sun, 14 Apr 2013 15:38:07 -0400 Subject: Initial patch for output synchronization. See Savannah bug #33138. Based on work by David Boyce . --- misc.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'misc.c') diff --git a/misc.c b/misc.c index 37fa1e1..ba8cc2e 100644 --- a/misc.c +++ b/misc.c @@ -231,10 +231,13 @@ message (prefix, fmt, va_alist) va_list args; #endif - log_working_directory (1); + log_working_directory (1, 0); if (fmt != 0) { + if (parallel_sync) + log_working_directory (1, 1); + if (prefix) { if (makelevel == 0) @@ -246,6 +249,9 @@ message (prefix, fmt, va_alist) VA_PRINTF (stdout, fmt, args); VA_END (args); putchar ('\n'); + + if (parallel_sync) + log_working_directory (0, 1); } fflush (stdout); @@ -267,7 +273,10 @@ error (flocp, fmt, va_alist) va_list args; #endif - log_working_directory (1); + if (parallel_sync) + log_working_directory (1, 1); + else + log_working_directory (1, 0); if (flocp && flocp->filenm) fprintf (stderr, "%s:%lu: ", flocp->filenm, flocp->lineno); @@ -282,6 +291,9 @@ error (flocp, fmt, va_alist) putc ('\n', stderr); fflush (stderr); + + if (parallel_sync) + log_working_directory (0, 1); } /* Print an error message and exit. */ @@ -300,7 +312,10 @@ fatal (flocp, fmt, va_alist) va_list args; #endif - log_working_directory (1); + if (parallel_sync) + log_working_directory (1, 1); + else + log_working_directory (1, 0); if (flocp && flocp->filenm) fprintf (stderr, "%s:%lu: *** ", flocp->filenm, flocp->lineno); @@ -315,6 +330,9 @@ fatal (flocp, fmt, va_alist) fputs (_(". Stop.\n"), stderr); + if (parallel_sync) + log_working_directory (0, 1); + die (2); } -- cgit v1.2.3