[lttng-dev] [PATCH lttng-ust] Move enablers syncing after the channel registration

francis.deslauriers at efficios.com francis.deslauriers at efficios.com
Thu Jul 10 18:22:14 EDT 2014


From: Francis Deslauriers <francis.deslauriers at efficios.com>

Fixes possible race condition where an event registration is received
 before its channel registration by the consumer.

Signed-off-by: Francis Deslauriers <francis.deslauriers at efficios.com>
---
 liblttng-ust/lttng-events.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/liblttng-ust/lttng-events.c b/liblttng-ust/lttng-events.c
index e44628d..285b98e 100644
--- a/liblttng-ust/lttng-events.c
+++ b/liblttng-ust/lttng-events.c
@@ -248,8 +248,6 @@ int lttng_session_enable(struct lttng_session *session)
 
 	/* Set transient enabler state to "enabled" */
 	session->tstate = 1;
-	/* We need to sync enablers with session before activation. */
-	lttng_session_sync_enablers(session);
 
 	/*
 	 * Snapshot the number of events per channel to know the type of header
@@ -287,6 +285,9 @@ int lttng_session_enable(struct lttng_session *session)
 		}
 	}
 
+	/* We need to sync enablers with session before activation. */
+	lttng_session_sync_enablers(session);
+
 	/* Set atomically the state to "active" */
 	CMM_ACCESS_ONCE(session->active) = 1;
 	CMM_ACCESS_ONCE(session->been_active) = 1;
-- 
1.8.3.2




More information about the lttng-dev mailing list