X-Git-Url: https://git.decadent.org.uk/gitweb/?p=videolink.git;a=blobdiff_plain;f=auto_proc.cpp;h=ad04a125f25a9001a7d9288e5d861ff9f2bd5143;hp=1e7d70c31d12820795e69337d9c5abb1b8086b17;hb=aa8617d3abf2042b99aaa4c880b395534169814b;hpb=af6539192a3f97e3ff423a3ea9fc55dd406bee14 diff --git a/auto_proc.cpp b/auto_proc.cpp index 1e7d70c..ad04a12 100644 --- a/auto_proc.cpp +++ b/auto_proc.cpp @@ -15,7 +15,15 @@ void auto_kill_proc_closer::operator()(pid_t pid) const assert(pid >= -1); if (pid > 0 && waitpid(pid, NULL, WNOHANG) == 0) + { kill(pid, SIGTERM); + while (waitpid(pid, NULL, 0) == -1) + if (errno != EINTR) + { + assert(!"invalid pid in auto_kill_proc_closer"); + break; + } + } } void auto_wait_proc_closer::operator()(pid_t pid) const