X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Fmain.c;h=9a68b2b2d940fc2860fbbde22c0ebc20cb89ff59;hb=50138f511c30d4d8fe2450c9a5e8fdf98e5d2862;hp=dffcaff9855a61b265bba6b3eb376a990188a76e;hpb=7d2f74525fbda4dcc744f33ea26c911545b5df13;p=lttng-tools.git diff --git a/src/bin/lttng-relayd/main.c b/src/bin/lttng-relayd/main.c index dffcaff98..9a68b2b2d 100644 --- a/src/bin/lttng-relayd/main.c +++ b/src/bin/lttng-relayd/main.c @@ -2527,31 +2527,36 @@ int main(int argc, char **argv) goto exit_listener; } - ret = live_start_threads(live_uri, relay_ctx); + ret = live_start_threads(live_uri, relay_ctx, thread_quit_pipe); if (ret != 0) { ERR("Starting live viewer threads"); + goto exit_live; } -exit_listener: + live_stop_threads(); + +exit_live: ret = pthread_join(listener_thread, &status); if (ret != 0) { PERROR("pthread_join"); goto error; /* join error, exit without cleanup */ } -exit_worker: +exit_listener: ret = pthread_join(worker_thread, &status); if (ret != 0) { PERROR("pthread_join"); goto error; /* join error, exit without cleanup */ } -exit_dispatcher: +exit_worker: ret = pthread_join(dispatcher_thread, &status); if (ret != 0) { PERROR("pthread_join"); goto error; /* join error, exit without cleanup */ } + +exit_dispatcher: lttng_ht_destroy(viewer_streams_ht); exit_relay_ctx_viewer_streams: @@ -2564,7 +2569,6 @@ exit_relay_ctx_sessions: free(relay_ctx); exit: - live_stop_threads(); cleanup(); if (!ret) { exit(EXIT_SUCCESS);