--- libaitio/example/test_exec.c 2013/12/05 14:12:25 1.1.2.3 +++ libaitio/example/test_exec.c 2013/12/05 16:02:02 1.1.2.4 @@ -7,7 +7,7 @@ int main(int argc, char **argv) { prog_t *p; - int stat; + int ret = 0; if (argc < 2) return 1; @@ -16,17 +16,21 @@ main(int argc, char **argv) if (!p) { ELIBERR(io); return 2; + } else if ((ret = io_progCheck(p))) { + printf("0.exited procs=%d\n", ret); + goto end; } else { printf("wait for keystroke %p ", p); getchar(); } - printf("%d\n", waitpid(-1, &stat, WNOHANG)); - printf("%d\n", waitpid(-1, &stat, WNOHANG)); - printf("%d\n", waitpid(-1, &stat, WNOHANG)); - printf("%d\n", waitpid(-1, &stat, WNOHANG)); - printf("%d\n", waitpid(-1, &stat, WNOHANG)); + ret = io_progCheck(p); + if (ret) { + printf("1.exited procs=%d\n", ret); + goto end; + } +end: io_progDestroy(&p); - return 0; + return ret; }