15 #ifndef NINJA_SUBPROCESS_H_ 16 #define NINJA_SUBPROCESS_H_ 31 # include <sys/param.h> 32 # if defined USE_PPOLL && __FreeBSD_version < 1002000 52 const string& GetOutput()
const;
64 HANDLE SetupPipe(HANDLE ioport);
68 OVERLAPPED overlapped_;
69 char overlapped_buf_[4 << 10];
87 Subprocess* Add(
const string& command,
bool use_console =
false);
96 static BOOL WINAPI NotifyInterrupted(DWORD dwCtrlType);
97 static HANDLE ioport_;
99 static void SetInterruptedFlag(
int signum);
100 static void HandlePendingInterruption();
107 struct sigaction old_int_act_;
108 struct sigaction old_term_act_;
109 struct sigaction old_hup_act_;
114 #endif // NINJA_SUBPROCESS_H_ SubprocessSet runs a ppoll/pselect() loop around a set of Subprocesses.
vector< Subprocess * > running_
Subprocess wraps a single async subprocess.
static bool IsInterrupted()
static int interrupted_
Store the signal number that causes the interruption.
queue< Subprocess * > finished_