Move enablers syncing after the channel registration
authorFrancis Deslauriers <francis.deslauriers@efficios.com>
Thu, 10 Jul 2014 22:22:14 +0000 (18:22 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 14 Jul 2014 18:06:43 +0000 (14:06 -0400)
Fixes possible race condition where an event registration is received
before its channel registration by the consumer.

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
liblttng-ust/lttng-events.c

index e44628dfcc02b8dc207232fe9d42ff836bc4edbd..285b98e8d501181241c65fe5a46bff61a68b7782 100644 (file)
@@ -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;
This page took 0.025239 seconds and 4 git commands to generate.