X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-consumerd%2Flttng-consumerd.c;h=0d34feeb342904ddc599c84fbc7c7359ade16872;hb=6a0caa9baf6913eacea486ac84f14ee65c62108b;hp=764cf4cb0f59ff981629c99078b31676d0f700b2;hpb=bec9764693f61c0ed708d94a89e15a7ee38e5c69;p=lttng-tools.git diff --git a/src/bin/lttng-consumerd/lttng-consumerd.c b/src/bin/lttng-consumerd/lttng-consumerd.c index 764cf4cb0..0d34feeb3 100644 --- a/src/bin/lttng-consumerd/lttng-consumerd.c +++ b/src/bin/lttng-consumerd/lttng-consumerd.c @@ -109,7 +109,9 @@ static void sighandler(int sig) return; } - lttng_consumer_should_exit(ctx); + if (ctx) { + lttng_consumer_should_exit(ctx); + } } /* @@ -312,6 +314,7 @@ int main(int argc, char **argv) { int ret = 0, retval = 0; void *status; + struct lttng_consumer_local_data *tmp_ctx; if (set_signal_handler()) { retval = -1; @@ -626,7 +629,10 @@ exit_health_thread: exit_health_pipe: exit_init_data: - lttng_consumer_destroy(ctx); + tmp_ctx = ctx; + ctx = NULL; + cmm_barrier(); /* Clear ctx for signal handler. */ + lttng_consumer_destroy(tmp_ctx); lttng_consumer_cleanup(); if (health_consumerd) {