*/
static void teardown_kernel_session(struct ltt_session *session)
{
- if (session->kernel_session != NULL) {
- DBG("Tearing down kernel session");
-
- /*
- * If a custom kernel consumer was registered, close the socket before
- * tearing down the complete kernel session structure
- */
- if (session->kernel_session->consumer_fd != kconsumer_data.cmd_sock) {
- lttcomm_close_unix_sock(session->kernel_session->consumer_fd);
- }
+ if (!session->kernel_session)
+ return;
+ DBG("Tearing down kernel session");
- trace_kernel_destroy_session(session->kernel_session);
- /* Extra precaution */
- session->kernel_session = NULL;
+ /*
+ * If a custom kernel consumer was registered, close the socket before
+ * tearing down the complete kernel session structure
+ */
+ if (session->kernel_session->consumer_fd != kconsumer_data.cmd_sock) {
+ lttcomm_close_unix_sock(session->kernel_session->consumer_fd);
}
+
+ trace_kernel_destroy_session(session->kernel_session);
}
/*
{
int ret;
+ if (!session->ust_session)
+ return;
DBG("Tearing down UST session(s)");
-
ret = ust_app_destroy_trace_all(session->ust_session);
if (ret) {
ERR("Error in ust_app_destroy_trace_all");
DBG("Creating UST session");
- session_lock_list();
- uid = session_list_ptr->count;
- session_unlock_list();
-
+ uid = session->uid;
lus = trace_ust_create_session(session->path, uid, domain);
if (lus == NULL) {
ret = LTTCOMM_UST_SESS_FAIL;
channels[i].attr.read_timer_interval =
uchan->attr.read_timer_interval;
channels[i].attr.output = uchan->attr.output;
+ i++;
}
break;
}