X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=libringbuffer%2Fshm.c;h=781295beb718c69057fb9ba54e89916fba5ad00c;hb=7a7849896a95db678d916ccb7c5d91371828e3f8;hp=ae63b004fd50723cd9c73511049bb8d042928f59;hpb=193183fb924aef705f30358e54e7386a3a64c78d;p=lttng-ust.git diff --git a/libringbuffer/shm.c b/libringbuffer/shm.c index ae63b004..781295be 100644 --- a/libringbuffer/shm.c +++ b/libringbuffer/shm.c @@ -16,7 +16,7 @@ #include #include #include -#include +#include struct shm_object_table *shm_object_table_create(size_t max_nb_obj) { @@ -203,17 +203,21 @@ void shmp_object_destroy(struct shm_object *obj) { int ret, i; - ret = munmap(obj->memory_map, obj->memory_map_size); - if (ret) { - PERROR("umnmap"); - assert(0); - } + if (!obj->is_shadow) { + ret = munmap(obj->memory_map, obj->memory_map_size); + if (ret) { + PERROR("umnmap"); + assert(0); + } + } ret = close(obj->shm_fd); if (ret) { PERROR("close"); assert(0); } for (i = 0; i < 2; i++) { + if (obj->wait_fd[i] < 0) + continue; ret = close(obj->wait_fd[i]); if (ret) { PERROR("close");