From: Christian Seiler Date: Mon, 20 May 2013 15:54:21 +0000 (+0200) Subject: utils.c: Add lxc_wait_for_pid_status routine that returns exit code X-Git-Tag: lxc-1.0.0.alpha1~1^2~200 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c797a220d51d2796355fd60eca50523ffd6fb45e;p=thirdparty%2Flxc.git utils.c: Add lxc_wait_for_pid_status routine that returns exit code Signed-off-by: Christian Seiler Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/utils.c b/src/lxc/utils.c index cf42c385c..66bd19d09 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -265,3 +265,19 @@ again: return -1; return 0; } + +int lxc_wait_for_pid_status(pid_t pid) +{ + int status, ret; + +again: + ret = waitpid(pid, &status, 0); + if (ret == -1) { + if (errno == EINTR) + goto again; + return -1; + } + if (ret != pid) + goto again; + return status; +} diff --git a/src/lxc/utils.h b/src/lxc/utils.h index 09af34ac3..be1a8a8c3 100644 --- a/src/lxc/utils.h +++ b/src/lxc/utils.h @@ -23,6 +23,8 @@ #ifndef _utils_h #define _utils_h +#include + extern int lxc_setup_fs(void); extern int get_u16(unsigned short *val, const char *arg, int base); extern int mkdir_p(const char *dir, mode_t mode); @@ -64,5 +66,6 @@ extern int __build_bug_on_failed; * wait on a child we forked */ extern int wait_for_pid(pid_t pid); +extern int lxc_wait_for_pid_status(pid_t pid); #endif