summaryrefslogtreecommitdiff
path: root/job.h
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-04-28 01:19:19 -0400
committerPaul Smith <psmith@gnu.org>2013-04-28 01:19:19 -0400
commit7f01830927969a8386050617385e59070fe9f34b (patch)
treeb211c33f53be418ea4bf051b503aea10607f6d49 /job.h
parent30843dea3a17f84b7456f68d75e5cd6bd5c5e11b (diff)
downloadgunmake-7f01830927969a8386050617385e59070fe9f34b.tar.gz
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.
Diffstat (limited to 'job.h')
-rw-r--r--job.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/job.h b/job.h
index df74270..f15b54c 100644
--- a/job.h
+++ b/job.h
@@ -99,16 +99,14 @@ struct child
#endif
unsigned int command_line; /* Index into command_lines. */
- pid_t pid; /* Child process's ID number. */
+ int outfd; /* File descriptor for saving stdout */
+ int errfd; /* File descriptor for saving stderr */
+ pid_t pid; /* Child process's ID number. */
unsigned int remote:1; /* Nonzero if executing remotely. */
unsigned int noerror:1; /* Nonzero if commands contained a '-'. */
unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */
unsigned int deleted:1; /* Nonzero if targets have been deleted. */
unsigned int dontcare:1; /* Saved dontcare flag. */
-#ifdef OUTPUT_SYNC
- int outfd; /* File descriptor for saving stdout */
- int errfd; /* File descriptor for saving stderr */
-#endif
};
extern struct child *children;