diff options
| -rw-r--r-- | core/logger.c | 7 | ||||
| -rw-r--r-- | data/client.cpp | 11 |
2 files changed, 14 insertions, 4 deletions
diff --git a/core/logger.c b/core/logger.c index efff3dc..4ff7562 100644 --- a/core/logger.c +++ b/core/logger.c @@ -13,8 +13,6 @@ enum LogLevel { WARN, }; -char g_log_buff[LOG_LINE_SIZE]; - void log_msg_to_buff(char *out, int size, enum LogLevel level, bool colored, const char *format, va_list args) { assert(out); assert(size); @@ -78,8 +76,9 @@ void log_msg(enum LogLevel level, bool colored, const char *format, va_list args assert(level == INFO || level == WARN); assert(format); - log_msg_to_buff(g_log_buff, LOG_LINE_SIZE, level, colored, format, args); - printf("\r%s\n", g_log_buff); + char buff[LOG_LINE_SIZE]; + log_msg_to_buff(buff, LOG_LINE_SIZE, level, colored, format, args); + printf("\r%s\n", buff); } void log_info(const char *format, ...) { 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"); |
