about summary refs log tree commit diff stats
path: root/src/server/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/main.cpp')
-rw-r--r--src/server/main.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/server/main.cpp b/src/server/main.cpp
index d724bd5..42b7668 100644
--- a/src/server/main.cpp
+++ b/src/server/main.cpp
@@ -1,14 +1,30 @@
+#include <csignal>
 #include <cstdint>
 #include <iostream>
 #include <stdexcept>
 #include <string>
 
-#include "shared_memory_server.h"
+#include "server.h"
+
+Server<int, int> shm;
+
+/**
+ * @brief Shuts the server down, when pressing <Ctrl+C>.
+ *
+ * @param signal Specifies the signal, which was caught.
+ */
+void signal_handler(int signal)
+{
+    if (signal == SIGINT) {
+        std::cout << "Server shutting down" << '\n';
+        exit(0);
+    }
+}
 
 int main(int argc, char* argv[])
 {
     if (argc != 2) {
-        std::cout << "One argument required" << '\n';
+        std::cout << "Usage: " << argv[0] << " <number-of-buckets>\n";
         return 1;
     }
 
@@ -20,7 +36,9 @@ int main(int argc, char* argv[])
         return 1;
     }
 
-    Server<int, int> shm(size);
+    shm.initialize_hashtable(size);
+
+    std::signal(SIGINT, signal_handler);
 
     shm.process_requests();