X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=lttng-events.c;fp=lttng-events.c;h=1aff9ec75c579dbf6a1a16e0929d2c01c8c404bc;hb=088b334616f6c6b9fa5239f7ee11b7311ee0b0bf;hp=f9a19190ffc03be47ab8f8196a49f180c1b8dbc0;hpb=b96080a0f89ea706365d685ad136d1572813451f;p=lttng-modules.git diff --git a/lttng-events.c b/lttng-events.c index f9a19190..1aff9ec7 100644 --- a/lttng-events.c +++ b/lttng-events.c @@ -52,6 +52,8 @@ #include "lttng-abi-old.h" #include "lttng-endian.h" #include "wrapper/vzalloc.h" +#include "wrapper/ringbuffer/backend.h" +#include "wrapper/ringbuffer/frontend.h" #define METADATA_CACHE_DEFAULT_SIZE 4096 @@ -237,6 +239,10 @@ int lttng_session_enable(struct lttng_session *session) /* We need to sync enablers with session before activation. */ lttng_session_sync_enablers(session); + /* Clear each stream's quiescent state. */ + list_for_each_entry(chan, &session->chan, list) + lib_ring_buffer_clear_quiescent_channel(chan->chan); + ACCESS_ONCE(session->active) = 1; ACCESS_ONCE(session->been_active) = 1; ret = _lttng_session_metadata_statedump(session); @@ -255,6 +261,7 @@ end: int lttng_session_disable(struct lttng_session *session) { int ret = 0; + struct lttng_channel *chan; mutex_lock(&sessions_mutex); if (!session->active) { @@ -266,6 +273,10 @@ int lttng_session_disable(struct lttng_session *session) /* Set transient enabler state to "disabled" */ session->tstate = 0; lttng_session_sync_enablers(session); + + /* Set each stream's quiescent state. */ + list_for_each_entry(chan, &session->chan, list) + lib_ring_buffer_set_quiescent_channel(chan->chan); end: mutex_unlock(&sessions_mutex); return ret;