From d73ee93f00ad2bf67dc79f2e3e09f74e2fb3d01f Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=A9mie=20Galarneau?= Date: Wed, 10 Jan 2018 16:23:45 -0500 Subject: [PATCH] Check for pending notification on notification channel activity MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérémie Galarneau --- src/bin/lttng-sessiond/rotation-thread.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/bin/lttng-sessiond/rotation-thread.c b/src/bin/lttng-sessiond/rotation-thread.c index 2fed39fc7..e6b9b6a1e 100644 --- a/src/bin/lttng-sessiond/rotation-thread.c +++ b/src/bin/lttng-sessiond/rotation-thread.c @@ -682,11 +682,25 @@ int handle_notification_channel(int fd, uint32_t revents, struct rotation_thread_state *state) { int ret; - struct lttng_notification *notification; + bool notification_pending; + struct lttng_notification *notification = NULL; enum lttng_notification_channel_status status; const struct lttng_evaluation *notification_evaluation; const struct lttng_condition *notification_condition; + status = lttng_notification_channel_has_pending_notification( + rotate_notification_channel, ¬ification_pending); + if (status != LTTNG_NOTIFICATION_CHANNEL_STATUS_OK) { + ERR("[rotation-thread ]Error occured while checking for pending notification"); + ret = -1; + goto end; + } + + if (!notification_pending) { + ret = 0; + goto end; + } + /* Receive the next notification. */ status = lttng_notification_channel_get_next_notification( rotate_notification_channel, -- 2.34.1