diff options
author | Peter Collingbourne <peter@pcc.me.uk> | 2014-01-30 05:57:58 (GMT) |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2014-02-03 05:20:01 (GMT) |
commit | 2832613dc7c1a4a8ff3b9df729954715762a8381 (patch) | |
tree | 7f4be6edb18f26d73af002f977c2f4a901dfe2ea /src/subprocess.h | |
parent | 84986af6fdeae3f649f2bf884b20f644bc370e48 (diff) | |
download | Ninja-2832613dc7c1a4a8ff3b9df729954715762a8381.zip Ninja-2832613dc7c1a4a8ff3b9df729954715762a8381.tar.gz Ninja-2832613dc7c1a4a8ff3b9df729954715762a8381.tar.bz2 |
Introduce the "console" pool
This is a pre-defined pool with a depth of 1. It has the special property
that any task in the pool has direct access to the console. This can be
useful for interactive tasks or long-running tasks which produce status
updates on the console (such as test suites).
Diffstat (limited to 'src/subprocess.h')
-rw-r--r-- | src/subprocess.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/subprocess.h b/src/subprocess.h index 4c1629c..6ea6f62 100644 --- a/src/subprocess.h +++ b/src/subprocess.h @@ -44,13 +44,14 @@ struct Subprocess { const string& GetOutput() const; private: - Subprocess(); bool Start(struct SubprocessSet* set, const string& command); void OnPipeReady(); string buf_; #ifdef _WIN32 + Subprocess(); + /// Set up pipe_ as the parent-side pipe of the subprocess; return the /// other end of the pipe, usable in the child process. HANDLE SetupPipe(HANDLE ioport); @@ -61,9 +62,12 @@ struct Subprocess { char overlapped_buf_[4 << 10]; bool is_reading_; #else + Subprocess(bool use_console); + int fd_; pid_t pid_; #endif + bool use_console_; friend struct SubprocessSet; }; @@ -75,7 +79,7 @@ struct SubprocessSet { SubprocessSet(); ~SubprocessSet(); - Subprocess* Add(const string& command); + Subprocess* Add(const string& command, bool use_console = false); bool DoWork(); Subprocess* NextFinished(); void Clear(); |