Port: Remove _GNU_SOURCE, defined in config.h
[lttng-tools.git] / src / bin / lttng / commands / create.c
index 3b679ca71d75e77c3a80bad4b9237fab7f068d61..5027fce90dc1d8aca19f63566a7a6e4535b52489 100644 (file)
@@ -15,7 +15,6 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#define _GNU_SOURCE
 #define _LGPL_SOURCE
 #include <assert.h>
 #include <ctype.h>
@@ -81,7 +80,7 @@ static struct poptOption long_options[] = {
  * why this declaration exists and used ONLY in for this command.
  */
 extern int _lttng_create_session_ext(const char *name, const char *url,
-               const char *datetime, int live_timer);
+               const char *datetime);
 
 /*
  * usage
@@ -460,7 +459,7 @@ static int create_session(void)
                }
                ret = lttng_create_session_live(session_name, url, opt_live_timer);
        } else {
-               ret = _lttng_create_session_ext(session_name, url, datetime, -1);
+               ret = _lttng_create_session_ext(session_name, url, datetime);
        }
        if (ret < 0) {
                /* Don't set ret so lttng can interpret the sessiond error. */
@@ -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",
@@ -667,10 +674,11 @@ static int launch_sessiond(void)
        }
 
        ret = spawn_sessiond(pathname);
-       if (ret < 0) {
-               ERR("Problem occurred when starting %s", pathname);
-       }
 end:
+       if (ret) {
+               ERR("Problem occurred while launching session daemon (%s)",
+                               pathname);
+       }
        return ret;
 }
 
This page took 0.024706 seconds and 5 git commands to generate.