diff options
Diffstat (limited to 'src/server/main.cpp')
| -rw-r--r-- | src/server/main.cpp | 24 |
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(); |