2#ifndef STASIS_MULTIPROCESSING_H
3#define STASIS_MULTIPROCESSING_H
16 struct timespec t_start;
17 struct timespec t_stop;
49#define MP_POOL_TASK_STATUS_INITIAL (-1)
52#define MP_POOL_TASK_MAX 1000
55#define MP_POOL_PID_UNUSED 0
58#define MP_POOL_FAIL_FAST 1 << 1
struct MultiProcessingPool * mp_pool_init(const char *ident, const char *log_root)
Definition multiprocessing.c:538
void mp_pool_show_summary(struct MultiProcessingPool *pool)
Definition multiprocessing.c:264
int mp_pool_join(struct MultiProcessingPool *pool, size_t jobs, size_t flags)
Definition multiprocessing.c:357
struct MultiProcessingTask * mp_pool_task(struct MultiProcessingPool *pool, const char *ident, char *working_dir, char *cmd)
Definition multiprocessing.c:178
void mp_pool_free(struct MultiProcessingPool **pool)
Definition multiprocessing.c:597
Definition multiprocessing.h:38
size_t num_used
Number of tasks populated in the task array.
Definition multiprocessing.h:40
size_t num_alloc
Number of tasks allocated by the task array.
Definition multiprocessing.h:41
char log_root[PATH_MAX]
Base directory to store stderr/stdout log files.
Definition multiprocessing.h:43
int status_interval
Report a pooled task is "running" every n seconds.
Definition multiprocessing.h:44
struct MultiProcessingTask * task
Array of tasks to execute.
Definition multiprocessing.h:39
char ident[255]
Identity of task pool.
Definition multiprocessing.h:42
Definition multiprocessing.h:21
struct MultiProcessingTimer interval_data
Progress report counters.
Definition multiprocessing.h:35
char working_dir[PATH_MAX]
Path to directory cmd should be executed in.
Definition multiprocessing.h:31
int signaled_by
Last signal received, if any.
Definition multiprocessing.h:25
size_t cmd_len
Length of command string (for mmap/munmap)
Definition multiprocessing.h:30
struct MultiProcessingTimer time_data
Wall-time counters.
Definition multiprocessing.h:34
char * cmd
Shell command(s) to be executed.
Definition multiprocessing.h:29
time_t _startup
Time elapsed since task started.
Definition multiprocessing.h:27
char parent_script[PATH_MAX]
Path to temporary script executing the task.
Definition multiprocessing.h:33
pid_t parent_pid
Program PID (parent process)
Definition multiprocessing.h:23
char ident[255]
Identity of the pool task.
Definition multiprocessing.h:28
int status
Child process exit status.
Definition multiprocessing.h:24
char log_file[PATH_MAX]
Full path to stdout/stderr log file.
Definition multiprocessing.h:32
int timeout
Seconds to elapse before killing the process.
Definition multiprocessing.h:26
pid_t pid
Program PID.
Definition multiprocessing.h:22
Definition multiprocessing.h:15