X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fnotification-thread-events.cpp;h=70774a97530b1b625033387c2215ab052e47bf54;hb=32670d719327feb585374283a50eeb76ce36b962;hp=aaf24b3f0f404391cdce74a31fa0a233e63aa1c0;hpb=b17ed2ad7083d1b0bf45fe3e1bfc4e4ad787aaf3;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/notification-thread-events.cpp b/src/bin/lttng-sessiond/notification-thread-events.cpp index aaf24b3f0..70774a975 100644 --- a/src/bin/lttng-sessiond/notification-thread-events.cpp +++ b/src/bin/lttng-sessiond/notification-thread-events.cpp @@ -3311,21 +3311,24 @@ int handle_notification_thread_command(struct notification_thread_handle *handle if (ret) { goto error_unlock; } + end: if (cmd->is_async) { - free(cmd); + delete cmd; cmd = nullptr; } else { - lttng_waiter_wake_up(&cmd->reply_waiter); + cmd->command_completed_waker->wake(); } + return ret; + error_unlock: /* Wake-up and return a fatal error to the calling thread. */ - lttng_waiter_wake_up(&cmd->reply_waiter); cmd->reply_code = LTTNG_ERR_FATAL; + error: - /* Indicate a fatal error to the caller. */ - return -1; + ret = -1; + goto end; } static int socket_set_non_blocking(int socket)