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);
54 friend class ProcessManager;
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
static ProcessManager * instance()
Retrieve the Process manager instance.
Definition process.cpp:162
int writePipe() const
Retrieve the Process manager's write pipe.
Definition process.cpp:174
void registerProcess(Process *proc)
Register process with process manager.
Definition process.cpp:101
ProcessManager()
Construct a ProcessManager instance.
Definition process.cpp:114
const struct sigaction & oldsa() const
Retrive the old signal action data.
Definition process.cpp:186
Process object.
Definition process.h:22
void kill()
Kill the process.
Definition process.cpp:369
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:237
ExitStatus
Exit status of process.
Definition process.h:24
@ SignalExit
Definition process.h:27
@ NotExited
Definition process.h:25
@ NormalExit
Definition process.h:26
Signal< enum ExitStatus, int > finished
Definition process.h:42
int exitCode() const
Retrieve the exit code of the process.
Definition process.h:38
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.