diff options
| author | Paul Oliver <contact@pauloliver.dev> | 2026-05-25 06:36:03 +0200 |
|---|---|---|
| committer | Paul Oliver <contact@pauloliver.dev> | 2026-05-25 06:36:03 +0200 |
| commit | 65ce077940bc5916b7c67fde1856b112ba38de39 (patch) | |
| tree | 5dbd304fa2573de91f0264a51d8f6d010682d41c /data | |
| parent | 43764cc5172156d02d88a042c31f0c9d204cf0e6 (diff) | |
Makes data client terminate nicely when signal is received
Diffstat (limited to 'data')
| -rw-r--r-- | data/client.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/data/client.cpp b/data/client.cpp index 74f2bc5..f0ffa6a 100644 --- a/data/client.cpp +++ b/data/client.cpp @@ -5,6 +5,7 @@ #include <implot.h> #include <limits.h> #include <math.h> +#include <signal.h> #include <initializer_list> @@ -368,6 +369,13 @@ void gui_print(void) { // ---------------------------------------------------------------------------- // Main functions // ---------------------------------------------------------------------------- +void sig_handler(int signo) { + (void)signo; + + log_warn("Signal received, will stop SALIS data client..."); + glfwSetWindowShouldClose(g_window, GLFW_TRUE); +} + void glfw_error_callback(int error, const char* description) { log_warn("GLFW error %d: %s", error, description); } @@ -454,6 +462,9 @@ int main(int argc, char **argv) { (void)argc; (void)argv; + signal(SIGINT, sig_handler); + signal(SIGTERM, sig_handler); + log_info("Starting SALIS data client"); log_info("Initializing GLFW"); |
