From: Lennart Poettering Date: Thu, 17 May 2018 02:14:59 +0000 (-0400) Subject: process-util: mention that wait_for_terminate_with_timeout() should be called with... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=c7beed3ba1b20cd87dfce3ab622232ed9eb201f2;p=elogind.git process-util: mention that wait_for_terminate_with_timeout() should be called with SIGCHLD blocked --- diff --git a/src/basic/process-util.c b/src/basic/process-util.c index a52f95e76..1484a0011 100644 --- a/src/basic/process-util.c +++ b/src/basic/process-util.c @@ -744,14 +744,17 @@ int wait_for_terminate_and_check(const char *name, pid_t pid, WaitFlags flags) { /* * Return values: - * < 0 : wait_for_terminate_with_timeout() failed to get the state of the - * process, the process timed out, the process was terminated by a - * signal, or failed for an unknown reason. + * + * < 0 : wait_for_terminate_with_timeout() failed to get the state of the process, the process timed out, the process + * was terminated by a signal, or failed for an unknown reason. + * * >=0 : The process terminated normally with no failures. * - * Success is indicated by a return value of zero, a timeout is indicated - * by ETIMEDOUT, and all other child failure states are indicated by error - * is indicated by a non-zero value. + * Success is indicated by a return value of zero, a timeout is indicated by ETIMEDOUT, and all other child failure + * states are indicated by error is indicated by a non-zero value. + * + * This call assumes SIGCHLD has been blocked already, in particular before the child to wait for has been forked off + * to remain entirely race-free. */ int wait_for_terminate_with_timeout(pid_t pid, usec_t timeout) { sigset_t mask;