struct process;
struct procset;
+struct process_info;
typedef void (*process_exit_cb)(struct process *);
const char *path;
const char **argv;
bool keep_stdout;
+ bool add_stderr;
process_exit_cb exit_cb;
void *data;
+ waiter_cb stdout_cb;
+ void *stdout_data;
/* runtime data */
pid_t pid;
/* post-execution information */
int exit_status;
+ bool cancelled;
};
/* Process management system init. process_init must be called before
int process_run_async(struct process *process);
void process_stop_async(struct process *process);
+void process_stop_async_all(void);
+
+/* helper function to determine if a process exited cleanly, with a non-zero
+ * exit status */
+bool process_exit_ok(struct process *process);
+
+/* Functions to assist callers using a custom stdout callback */
+struct process *procinfo_get_process(struct process_info *procinfo);
+int process_stdout_custom(struct process_info *procinfo, char **line);
+
#endif /* PROCESS_H */