Fix: relayd: incorrectly placed exit labels
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index dffcaff9855a61b265bba6b3eb376a990188a76e..9a68b2b2d940fc2860fbbde22c0ebc20cb89ff59 100644 (file)
@@ -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);
This page took 0.027807 seconds and 4 git commands to generate.