Implement snapshot commands in lttng-sessiond
[lttng-tools.git] / src / bin / lttng-sessiond / session.c
index 17dc3544dbe55a4dac884b5af9f178e2f1c44991..5f5c2a6ee08fe202cff46a1adf461ec3c6118d5f 100644 (file)
@@ -147,6 +147,7 @@ found:
  * Delete session from the session list and free the memory.
  *
  * Return -1 if no session is found.  On success, return 1;
+ * Should *NOT* be called with RCU read-side lock held.
  */
 int session_destroy(struct ltt_session *session)
 {
@@ -157,9 +158,8 @@ int session_destroy(struct ltt_session *session)
        del_session_list(session);
        pthread_mutex_destroy(&session->lock);
 
-       rcu_read_lock();
        consumer_destroy_output(session->consumer);
-       rcu_read_unlock();
+       snapshot_destroy(&session->snapshot);
        free(session);
 
        return LTTNG_OK;
@@ -203,6 +203,12 @@ int session_create(char *name, uid_t uid, gid_t gid)
        new_session->uid = uid;
        new_session->gid = gid;
 
+       ret = snapshot_init(&new_session->snapshot);
+       if (ret < 0) {
+               ret = LTTNG_ERR_NOMEM;
+               goto error;
+       }
+
        /* Add new session to the session list */
        session_lock_list();
        new_session->id = add_session_list(new_session);
This page took 0.023275 seconds and 4 git commands to generate.