From: Jérémie Galarneau Date: Tue, 26 Nov 2019 22:10:02 +0000 (-0500) Subject: relayd: track the health quit pipe with the fd-tracker X-Git-Tag: v2.12.0-rc1~61 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=bcee2b96c2ddf927ddcbbc6584cda7d3c17bbb95;ds=sidebyside relayd: track the health quit pipe with the fd-tracker Create the relayd health thread quit pipe through the fd_tracker_util_pipe_open_cloexec() function which wraps utils_create_pipe_cloexec(), but tracks the resulting file descriptor. The close of the pipe is also performed through the fd tracker. Signed-off-by: Jérémie Galarneau Change-Id: Ib82eabc0f152a706ac76a5042af2e3984d7e7f72 --- diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index 43e60a48d..80d2fb189 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -664,7 +664,10 @@ static void relayd_cleanup(void) health_app_destroy(health_relayd); } /* Close thread quit pipes */ - utils_close_pipe(health_quit_pipe); + if (health_quit_pipe[0] != -1) { + (void) fd_tracker_util_pipe_close( + the_fd_tracker, health_quit_pipe); + } if (thread_quit_pipe[0] != -1) { (void) fd_tracker_util_pipe_close( the_fd_tracker, thread_quit_pipe); @@ -842,6 +845,17 @@ static int init_thread_quit_pipe(void) the_fd_tracker, "Quit pipe", thread_quit_pipe); } +/* + * Init health quit pipe. + * + * Return -1 on error or 0 if all pipes are created. + */ +static int init_health_quit_pipe(void) +{ + return fd_tracker_util_pipe_open_cloexec(the_fd_tracker, + "Health quit pipe", health_quit_pipe); +} + /* * Create a poll set with O_CLOEXEC and add the thread quit pipe to the set. */ @@ -4126,7 +4140,7 @@ int main(int argc, char **argv) goto exit_options; } - ret = utils_create_pipe(health_quit_pipe); + ret = init_health_quit_pipe(); if (ret) { retval = -1; goto exit_options;