#include <signal.h>
#include <dirent.h>
#include <lttng/align.h>
+#include <helper.h>
+#include <limits.h>
struct shm_object_table *shm_object_table_create(size_t max_nb_obj)
{
{
int ret, i;
- 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);
+ if (!obj->is_shadow) {
+ ret = munmap(obj->memory_map, obj->memory_map_size);
+ if (ret) {
+ PERROR("umnmap");
+ assert(0);
+ }
+ }
+ if (obj->shm_fd >= 0) {
+ ret = close(obj->shm_fd);
+ if (ret) {
+ PERROR("close");
+ assert(0);
+ }
}
for (i = 0; i < 2; i++) {
if (obj->wait_fd[i] < 0)