From 79ee7d56aa946acbc8e44511c9e7ce45393da5c0 Mon Sep 17 00:00:00 2001 From: Francis Deslauriers Date: Thu, 10 Jul 2014 18:22:14 -0400 Subject: [PATCH] Move enablers syncing after the channel registration Fixes possible race condition where an event registration is received before its channel registration by the consumer. Signed-off-by: Francis Deslauriers Signed-off-by: Mathieu Desnoyers --- 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 03acff11..7c5c05ed 100644 --- a/liblttng-ust/lttng-events.c +++ b/liblttng-ust/lttng-events.c @@ -243,8 +243,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 @@ -282,6 +280,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; -- 2.34.1