X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fsession.c;h=4730d0512e5bdb88e6a29275f18e5faeb5d5d4ce;hb=23c8ff5013f1e8c132cab7845ca608dbed4fca7f;hp=42c29aeb0b4816f5d83437f14aa6a4f3631762aa;hpb=9de831f8d2c7a9733bbfbedbebd802aa8a0de7d0;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/session.c b/src/bin/lttng-relayd/session.c index 42c29aeb0..4730d0512 100644 --- a/src/bin/lttng-relayd/session.c +++ b/src/bin/lttng-relayd/session.c @@ -25,6 +25,7 @@ #include "ctf-trace.h" #include "session.h" #include "stream.h" +#include "sessiond-trace-chunks.h" /* Global session id used in the session creation. */ static uint64_t last_relay_session_id; @@ -37,8 +38,10 @@ static pthread_mutex_t last_relay_session_id_lock = PTHREAD_MUTEX_INITIALIZER; */ struct relay_session *session_create(const char *session_name, const char *hostname, uint32_t live_timer, - bool snapshot, uint32_t major, uint32_t minor) + bool snapshot, const lttng_uuid sessiond_uuid, + uint32_t major, uint32_t minor) { + int ret; struct relay_session *session; session = zmalloc(sizeof(*session)); @@ -73,6 +76,13 @@ struct relay_session *session_create(const char *session_name, session->live_timer = live_timer; session->snapshot = snapshot; + lttng_uuid_copy(session->sessiond_uuid, sessiond_uuid); + + ret = sessiond_trace_chunk_registry_session_created( + sessiond_trace_chunk_registry, sessiond_uuid); + if (ret) { + goto error; + } lttng_ht_add_unique_u64(sessions_ht, &session->session_n); return session; @@ -154,6 +164,9 @@ static void destroy_session(struct relay_session *session) ret = session_delete(session); assert(!ret); + ret = sessiond_trace_chunk_registry_session_destroyed( + sessiond_trace_chunk_registry, session->sessiond_uuid); + assert(!ret); call_rcu(&session->rcu_node, rcu_destroy_session); }