X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust-ctl%2Fustctl.c;h=e285a2d24b7debc2159b760981c044e4663b7d24;hb=44c72f10aa3cace72ffe40a0f9bb7aadb9c82dc8;hp=f9c5e84fab59ef65116b70aa7d8df1941a123027;hpb=b115631f8ae20c4261491c20a88af496f6341e60;p=lttng-ust.git diff --git a/liblttng-ust-ctl/ustctl.c b/liblttng-ust-ctl/ustctl.c index f9c5e84f..e285a2d2 100644 --- a/liblttng-ust-ctl/ustctl.c +++ b/liblttng-ust-ctl/ustctl.c @@ -20,11 +20,12 @@ #include #include #include -#include -#include #include #include +#include +#include + #include "../libringbuffer/backend.h" #include "../libringbuffer/frontend.h" @@ -39,6 +40,10 @@ void init_object(struct lttng_ust_object_data *data) data->memory_map_size = 0; } +/* + * If sock is negative, it means we don't have to notify the other side + * (e.g. application has already vanished). + */ void ustctl_release_object(int sock, struct lttng_ust_object_data *data) { struct ustcomm_ust_msg lum; @@ -49,11 +54,13 @@ void ustctl_release_object(int sock, struct lttng_ust_object_data *data) close(data->shm_fd); if (data->wait_fd >= 0) close(data->wait_fd); - memset(&lum, 0, sizeof(lum)); - lum.handle = data->handle; - lum.cmd = LTTNG_UST_RELEASE; - ret = ustcomm_send_app_cmd(sock, &lum, &lur); - assert(!ret); + if (sock >= 0) { + memset(&lum, 0, sizeof(lum)); + lum.handle = data->handle; + lum.cmd = LTTNG_UST_RELEASE; + ret = ustcomm_send_app_cmd(sock, &lum, &lur); + assert(!ret); + } free(data); }