From dd2ef166ea85d4a2ebe8c24dcd575e3b331d8963 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 17 Jan 2023 15:20:05 +0100 Subject: [PATCH] LOG: do not depend on oai_exit By using oai_exit in log.c, LOG depends on being compiled into an executable that defines such symbol, which is not always the case (nor does it make sense). oai_exit is only used in a loop to optionally write out memory. The loop could relatively easily be aborted by setting a variable: --- common/utils/LOG/log.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c index f936ed5ae2..7b2dd406e0 100644 --- a/common/utils/LOG/log.c +++ b/common/utils/LOG/log.c @@ -45,6 +45,7 @@ #include "common/config/config_userapi.h" #include #include +#include #include "common/utils/LOG/log_extern.h" // main log variables @@ -810,7 +811,7 @@ void logClean (void) } } -extern int oai_exit; +static atomic_bool stop_flush_mem_to_file = false; void flush_mem_to_file(void) { int fp; @@ -821,7 +822,7 @@ void flush_mem_to_file(void) pthread_setname_np( pthread_self(), "flush_mem_to_file"); - while (!oai_exit) { + while (!atomic_load(&stop_flush_mem_to_file)) { pthread_mutex_lock(&log_mem_lock); log_mem_write_flag=0; pthread_cond_wait(&log_mem_notify, &log_mem_lock); @@ -981,6 +982,7 @@ void close_log_mem(void){ char f_name[1024]; if(log_mem_flag==1){ + atomic_store(&stop_flush_mem_to_file, false); log_mem_d[0].enable_flag=0; log_mem_d[1].enable_flag=0; usleep(10); // wait for log writing