lttng-sessiond: keep enabled/active state for sessions, cleanup enabled state for...
[lttng-tools.git] / lttng-sessiond / main.c
index 0c93395b4a573ddbbaeca68332692e5169d777d2..2e6292d38a7e567b84d96484d8be22c10f9e28eb 100644 (file)
@@ -157,6 +157,8 @@ static struct ust_cmd_queue ust_cmd_queue;
  */
 static struct ltt_session_list *session_list_ptr;
 
+int ust_consumer_fd;
+
 /*
  * Create a poll set with O_CLOEXEC and add the thread quit pipe to the set.
  */
@@ -1788,6 +1790,7 @@ static void list_lttng_sessions(struct lttng_session *sessions)
                sessions[i].path[PATH_MAX - 1] = '\0';
                strncpy(sessions[i].name, session->name, NAME_MAX);
                sessions[i].name[NAME_MAX - 1] = '\0';
+               sessions[i].enabled = session->enabled;
                i++;
        }
 }
@@ -2510,6 +2513,10 @@ static int cmd_start_trace(struct ltt_session *session)
        ksession = session->kernel_session;
        usess = session->ust_session;
 
+       if (session->enabled)
+               return LTTCOMM_UST_START_FAIL;
+       session->enabled = 1;
+
        /* Kernel tracing */
        if (ksession != NULL) {
                struct ltt_kernel_channel *kchan;
@@ -2595,6 +2602,10 @@ static int cmd_stop_trace(struct ltt_session *session)
        /* Short cut */
        ksession = session->kernel_session;
 
+       if (!session->enabled)
+               return LTTCOMM_UST_START_FAIL;
+       session->enabled = 0;
+
        /* Kernel tracer */
        if (ksession != NULL) {
                DBG("Stop kernel tracing");
@@ -3010,8 +3021,7 @@ static int process_client_msg(struct command_ctx *cmd_ctx)
                                        goto error;
                                }
 
-                               cmd_ctx->session->ust_session->consumer_fd =
-                                       ustconsumer_data.cmd_sock;
+                               ust_consumer_fd = ustconsumer_data.cmd_sock;
                        }
                        pthread_mutex_unlock(&ustconsumer_data.pid_mutex);
                }
This page took 0.023225 seconds and 4 git commands to generate.