diff --git a/libs/main/io_devices/pisharedmemory.cpp b/libs/main/io_devices/pisharedmemory.cpp index c50ea67d..6577b5dc 100644 --- a/libs/main/io_devices/pisharedmemory.cpp +++ b/libs/main/io_devices/pisharedmemory.cpp @@ -144,6 +144,9 @@ bool PISharedMemory::openDevice() { ::close(fd); if (PRIVATE->data == MAP_FAILED) { piCoutObj << "mmap error," << errorString(); + if (PRIVATE->owner) shm_unlink((const char *)PRIVATE->name.data()); + PRIVATE->data = nullptr; + PRIVATE->owner = false; return false; } // piCoutObj << "opened" << PRIVATE->data;