summaryrefslogtreecommitdiff
path: root/misc.c
diff options
context:
space:
mode:
authorFrank Heckenbach <f.heckenbach@fh-soft.de>2013-04-14 15:38:07 -0400
committerPaul Smith <psmith@gnu.org>2013-04-14 15:38:07 -0400
commitcb64352c75f0da8979c9addd37b2b78bb97d5301 (patch)
treecfc17e9359b14ed657e46d6092f55b921a1047f2 /misc.c
parent6a52395ed14e0bda22be3fc0819e4507a71278e1 (diff)
downloadgunmake-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.c24
1 files changed, 21 insertions, 3 deletions
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);
}