From cb365c03b0b4efc0d3f0875be586a8f4f270aaf6 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Tue, 6 Nov 2012 10:18:26 -0500 Subject: [PATCH] Remove consumer poll timeout in data thread This was originally used to stop any poll() after a grace period when a session daemon dies in case of weird stuck fd(s). However, things have changed a bit especially on the UST tracer side where all stream handles are now cleaned up if the session daemon socket hang up which than release every stream on the consumer and finally quits gracefully. Signed-off-by: David Goulet --- src/common/consumer.c | 12 +----------- src/common/consumer.h | 15 --------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/src/common/consumer.c b/src/common/consumer.c index e66edee2b..16b9eb64f 100644 --- a/src/common/consumer.c +++ b/src/common/consumer.c @@ -47,9 +47,6 @@ struct lttng_consumer_global_data consumer_data = { .type = LTTNG_CONSUMER_UNKNOWN, }; -/* timeout parameter, to control the polling thread grace period. */ -int consumer_poll_timeout = -1; - /* * Flag to inform the polling thread to quit when all fd hung up. Updated by * the consumer_thread_receive_fds when it notices that all fds has hung up. @@ -2250,7 +2247,7 @@ void *consumer_thread_data_poll(void *data) /* poll on the array of fds */ restart: DBG("polling on %d fd", nb_fd + 1); - num_rdy = poll(pollfd, nb_fd + 1, consumer_poll_timeout); + num_rdy = poll(pollfd, nb_fd + 1, -1); DBG("poll num_rdy : %d", num_rdy); if (num_rdy == -1) { /* @@ -2534,13 +2531,6 @@ end: */ consumer_quit = 1; - /* - * 2s of grace period, if no polling events occur during - * this period, the polling thread will exit even if there - * are still open FDs (should not happen, but safety mechanism). - */ - consumer_poll_timeout = LTTNG_CONSUMER_POLL_TIMEOUT; - /* * Notify the data poll thread to poll back again and test the * consumer_quit state that we just set so to quit gracefully. diff --git a/src/common/consumer.h b/src/common/consumer.h index be532b587..2bcb0db24 100644 --- a/src/common/consumer.h +++ b/src/common/consumer.h @@ -30,21 +30,6 @@ #include #include -/* - * When the receiving thread dies, we need to have a way to make the polling - * thread exit eventually. If all FDs hang up (normal case when the - * lttng-sessiond stops), we can exit cleanly, but if there is a problem and - * for whatever reason some FDs remain open, the consumer should still exit - * eventually. - * - * If the timeout is reached, it means that during this period no events - * occurred on the FDs so we need to force an exit. This case should not happen - * but it is a safety to ensure we won't block the consumer indefinitely. - * - * The value of 2 seconds is an arbitrary choice. - */ -#define LTTNG_CONSUMER_POLL_TIMEOUT 2000 - /* Commands for consumer */ enum lttng_consumer_command { LTTNG_CONSUMER_ADD_CHANNEL, -- 2.34.1