diff options
author | Frank Heckenbach <f.heckenbach@fh-soft.de> | 2013-04-14 15:38:07 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2013-04-14 15:38:07 -0400 |
commit | cb64352c75f0da8979c9addd37b2b78bb97d5301 (patch) | |
tree | cfc17e9359b14ed657e46d6092f55b921a1047f2 /misc.c | |
parent | 6a52395ed14e0bda22be3fc0819e4507a71278e1 (diff) | |
download | gunmake-cb64352c75f0da8979c9addd37b2b78bb97d5301.tar.gz |
Initial patch for output synchronization. See Savannah bug #33138.
Based on work by David Boyce <David.S.Boyce@gmail.com>.
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 24 |
1 files changed, 21 insertions, 3 deletions
@@ -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); } |