about summary refs log tree commit diff stats
path: root/src/server
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-03-23 20:11:53 +0100
committerChristian Krinitsin <mail@krinitsin.com>2025-03-23 20:11:53 +0100
commit36dabafe242e8dc290ff76885c43c773b6d20b28 (patch)
tree0e499c9ba8754810bf65a2c2967af85a985273b2 /src/server
parent9a82a125ce3fe4edc4519d7c2935e8266760e257 (diff)
downloadBT-Programming-Assignment-36dabafe242e8dc290ff76885c43c773b6d20b28.tar.gz
BT-Programming-Assignment-36dabafe242e8dc290ff76885c43c773b6d20b28.zip
prevent multiple server instances
Diffstat (limited to 'src/server')
-rw-r--r--src/server/shared_memory_server.h6
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));