--- libaitio/src/exec.c 2013/12/05 15:18:22 1.1.2.6 +++ libaitio/src/exec.c 2013/12/05 15:56:10 1.1.2.7 @@ -178,3 +178,28 @@ io_progVacuum(prog_t * __restrict prg, u_int toNum) return ret; } + +/* + * io_progCheck() - Check exit status of program pool + * + * @prg = program pool + * return: -1 error or >-1 exited programs + */ +int +io_progCheck(prog_t * __restrict prg) +{ + int ret = 0; + struct tagPIOPID *p; + register int i; + + if (!prg) + return -1; + + for (i = 0; i < array_Size(prg->prog_fds); i++) + if (array_Get(prg->prog_fds, i) && + (p = pio_pgetpid(array(prg->prog_fds, i, FILE*)))) + if (waitpid(p->pid, &p->stat, WNOHANG) > 0) + ret++; + + return ret; +}