33 int start(
const std::string &path,
34 const std::vector<std::string> &args = std::vector<std::string>(),
35 const std::vector<int> &fds = std::vector<int>());
45 void closeAllFdsExcept(
const std::vector<int> &fds);
47 void died(
int wstatus);
69 const struct sigaction &
oldsa()
const;
76 std::list<Process *> processes_;
78 struct sigaction oldsa_;
Notify of activity on a file descriptor.
Definition: event_notifier.h:20
Manager of processes.
Definition: process.h:58
static ProcessManager * instance()
Retrieve the Process manager instance.
Definition: process.cpp:163
int writePipe() const
Retrieve the Process manager's write pipe.
Definition: process.cpp:175
void registerProcess(Process *proc)
Register process with process manager.
Definition: process.cpp:102
ProcessManager()
Construct a ProcessManager instance.
Definition: process.cpp:115
const struct sigaction & oldsa() const
Retrive the old signal action data.
Definition: process.cpp:187
Process object.
Definition: process.h:22
void kill()
Kill the process.
Definition: process.cpp:371
int exitCode() const
Retrieve the exit code of the process.
Definition: process.h:38
int start(const std::string &path, const std::vector< std::string > &args=std::vector< std::string >(), const std::vector< int > &fds=std::vector< int >())
Fork and exec a process, and close fds.
Definition: process.cpp:239
ExitStatus
Exit status of process.
Definition: process.h:24
@ NormalExit
Definition: process.h:26
@ NotExited
Definition: process.h:25
@ SignalExit
Definition: process.h:27
Signal< enum ExitStatus, int > finished
Definition: process.h:42
ExitStatus exitStatus() const
Retrieve the exit status of the process.
Definition: process.h:37
Generic signal and slot communication mechanism.
Definition: signal.h:39
unique_ptr-like wrapper for a file descriptor
Definition: unique_fd.h:18
Top-level libcamera namespace.
Definition: backtrace.h:17
Signal & slot implementation.
File descriptor wrapper that owns a file descriptor.