X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-relayd%2Flive.c;h=fd570e0fc4bd801ebe065e5fd32b2f1c7780323f;hp=beb67b2a5654ed54cc5ef36a75408c2d6b667364;hb=b4aacfdce9fe9fddc01b738a8cc807d764245cef;hpb=6f04ed72990f6c72d16fd08d39feac0967da732e diff --git a/src/bin/lttng-relayd/live.c b/src/bin/lttng-relayd/live.c index beb67b2a5..fd570e0fc 100644 --- a/src/bin/lttng-relayd/live.c +++ b/src/bin/lttng-relayd/live.c @@ -326,42 +326,12 @@ error_unlock: return ret; } -/* - * Write to writable pipe used to notify a thread. - */ -static -int notify_thread_pipe(int wpipe) -{ - ssize_t ret; - - ret = lttng_write(wpipe, "!", 1); - if (ret < 1) { - PERROR("write poll pipe"); - } - - return (int) ret; -} - -/* - * Stop all threads by closing the thread quit pipe. - */ -static -int stop_threads(void) +int relayd_live_stop(void) { - int ret, retval = 0; - - /* Stopping all threads */ - DBG("Terminating all live threads"); - ret = notify_thread_pipe(thread_quit_pipe[1]); - if (ret < 0) { - ERR("write error on thread quit pipe"); - retval = -1; - } - - /* Dispatch thread */ + /* Stop dispatch thread */ CMM_STORE_SHARED(live_dispatch_thread_exit, 1); futex_nto1_wake(&viewer_conn_queue.futex); - return retval; + return 0; } /* @@ -593,8 +563,8 @@ error_sock_control: } health_unregister(health_relayd); DBG("Live viewer listener thread cleanup complete"); - if (stop_threads()) { - ERR("Error stopping live threads"); + if (lttng_relay_stop_threads()) { + ERR("Error stopping threads"); } return NULL; } @@ -672,8 +642,8 @@ error_testpoint: } health_unregister(health_relayd); DBG("Live viewer dispatch thread dying"); - if (stop_threads()) { - ERR("Error stopping live threads"); + if (lttng_relay_stop_threads()) { + ERR("Error stopping threads"); } return NULL; } @@ -2038,8 +2008,8 @@ error_testpoint: ERR("Health error occurred in %s", __func__); } health_unregister(health_relayd); - if (stop_threads()) { - ERR("Error stopping live threads"); + if (lttng_relay_stop_threads()) { + ERR("Error stopping threads"); } rcu_unregister_thread(); return NULL; @@ -2054,11 +2024,6 @@ static int create_conn_pipe(void) return utils_create_pipe_cloexec(live_conn_pipe); } -int relayd_live_stop(void) -{ - return stop_threads(); -} - int relayd_live_join(void) { int ret, retval = 0;