diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 19:09:52 +0100 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-03-23 19:09:52 +0100 |
| commit | eef27810ce34d00d1d19a7ac6fbce794df4a9708 (patch) | |
| tree | 834b82942ded2b27ec6a177302cd449c0011dc5a /src/server/main.cpp | |
| parent | 03ad55130b4f0047eb64d3cc9947b98f0130623e (diff) | |
| download | BT-Programming-Assignment-eef27810ce34d00d1d19a7ac6fbce794df4a9708.tar.gz BT-Programming-Assignment-eef27810ce34d00d1d19a7ac6fbce794df4a9708.zip | |
add server-shutdown with <Ctrl+C>
Diffstat (limited to 'src/server/main.cpp')
| -rw-r--r-- | src/server/main.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/server/main.cpp b/src/server/main.cpp index 75939e0..c20cde9 100644 --- a/src/server/main.cpp +++ b/src/server/main.cpp @@ -1,3 +1,4 @@ +#include <csignal> #include <cstdint> #include <iostream> #include <stdexcept> @@ -5,6 +6,21 @@ #include "shared_memory_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'; + shm.terminate_server(); + exit(0); + } +} + int main(int argc, char* argv[]) { if (argc != 2) { @@ -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(); |