Fix: wait for the completion of implicit session rotations
[lttng-tools.git] / src / bin / lttng-sessiond / session.h
index 1cea52a61fc64a75169041aa7bbddee7b8180082..0b4746cb51b80c5fe62d28997eb0944e77bc24e2 100644 (file)
@@ -23,6 +23,7 @@
 #include <urcu/list.h>
 
 #include <common/hashtable/hashtable.h>
+#include <common/dynamic-array.h>
 #include <lttng/rotation.h>
 #include <lttng/location.h>
 #include <lttng/lttng-error.h>
@@ -33,6 +34,9 @@
 
 struct ltt_ust_session;
 
+typedef void (*ltt_session_destroy_notifier)(const struct ltt_session *session,
+               void *user_data);
+
 /*
  * Tracing session list
  *
@@ -178,6 +182,7 @@ struct ltt_session {
        enum lttng_rotation_state rotation_state;
        char *last_archived_chunk_name;
        LTTNG_OPTIONAL(uint64_t) last_archived_chunk_id;
+       struct lttng_dynamic_array destroy_notifiers;
 };
 
 /* Prototypes */
@@ -190,6 +195,8 @@ void session_unlock(struct ltt_session *session);
 void session_unlock_list(void);
 
 void session_destroy(struct ltt_session *session);
+int session_add_destroy_notifier(struct ltt_session *session,
+               ltt_session_destroy_notifier notifier, void *user_data);
 
 bool session_get(struct ltt_session *session);
 void session_put(struct ltt_session *session);
@@ -202,7 +209,7 @@ void session_get_net_consumer_ports(
                const struct ltt_session *session,
                uint16_t *control_port, uint16_t *data_port);
 struct lttng_trace_archive_location *session_get_trace_archive_location(
-               struct ltt_session *session);
+               const struct ltt_session *session);
 
 struct ltt_session *session_find_by_name(const char *name);
 struct ltt_session *session_find_by_id(uint64_t id);
This page took 0.023892 seconds and 5 git commands to generate.