diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 20:11:53 +0100 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 20:11:53 +0100 |
| commit | 36dabafe242e8dc290ff76885c43c773b6d20b28 (patch) | |
| tree | 0e499c9ba8754810bf65a2c2967af85a985273b2 /src/server/shared_memory_server.h | |
| parent | 9a82a125ce3fe4edc4519d7c2935e8266760e257 (diff) | |
| download | BT-Programming-Assignment-36dabafe242e8dc290ff76885c43c773b6d20b28.tar.gz BT-Programming-Assignment-36dabafe242e8dc290ff76885c43c773b6d20b28.zip | |
prevent multiple server instances
Diffstat (limited to '')
| -rw-r--r-- | src/server/shared_memory_server.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/shared_memory_server.h b/src/server/shared_memory_server.h index e28fb6a..d4be69f 100644 --- a/src/server/shared_memory_server.h +++ b/src/server/shared_memory_server.h @@ -22,7 +22,11 @@ public: */ Server() { - shm_fd = shm_open(SHM_NAME, O_CREAT | O_RDWR, 0666); + shm_fd = shm_open(SHM_NAME, O_EXCL | O_CREAT | O_RDWR, 0666); + if (-1 == shm_fd) { + std::cout << "Server is already running!" << '\n'; + exit(-1); + } ftruncate(shm_fd, sizeof(SharedMemory)); |