X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fcreate.c;h=5027fce90dc1d8aca19f63566a7a6e4535b52489;hp=a7d327fbcada361477b71f44d025595adba67056;hb=890d8fe47755c3bad936389cf48ffa141cff41c9;hpb=d1edd8a82868dafce6d61600c87ac916d7f73702 diff --git a/src/bin/lttng/commands/create.c b/src/bin/lttng/commands/create.c index a7d327fbc..5027fce90 100644 --- a/src/bin/lttng/commands/create.c +++ b/src/bin/lttng/commands/create.c @@ -15,7 +15,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#define _GNU_SOURCE #define _LGPL_SOURCE #include #include @@ -579,14 +578,22 @@ static int spawn_sessiond(char *pathname) kill(getppid(), SIGTERM); /* wake parent */ exit(EXIT_FAILURE); } else if (pid > 0) { - int status; - /* * In daemon mode (--daemonize), sessiond only exits when * it's ready to accept commands. */ for (;;) { - waitpid(pid, &status, 0); + int status; + pid_t wait_pid_ret = waitpid(pid, &status, 0); + + if (wait_pid_ret < 0) { + if (errno == EINTR) { + continue; + } + PERROR("waitpid"); + ret = -errno; + goto end; + } if (WIFSIGNALED(status)) { ERR("Session daemon was killed by signal %d",