From 604d52a431b6752ce8c3607c28b062e91a99ec78 Mon Sep 17 00:00:00 2001 From: luis_pereira87 <lpereira@allbesmart.pt> Date: Mon, 16 May 2022 16:12:21 +0200 Subject: [PATCH] Replace sleep by mutex in itti_wait_tasks_end() --- common/utils/ocp_itti/intertask_interface.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/common/utils/ocp_itti/intertask_interface.cpp b/common/utils/ocp_itti/intertask_interface.cpp index 43001ec95b2..4613cd5c1b8 100644 --- a/common/utils/ocp_itti/intertask_interface.cpp +++ b/common/utils/ocp_itti/intertask_interface.cpp @@ -438,23 +438,24 @@ extern "C" { void itti_send_terminate_message(task_id_t task_id) { } - static volatile bool shutting_down; + pthread_mutex_t signal_mutex; static void catch_sigterm(int) { static const char msg[] = "\n** Caught SIGTERM, shutting down\n"; __attribute__((unused)) int unused = write(STDOUT_FILENO, msg, sizeof(msg) - 1); - shutting_down = true; + pthread_mutex_unlock(&signal_mutex); } void itti_wait_tasks_end(void) { - shutting_down = false; + + pthread_mutex_init(&signal_mutex, NULL); + pthread_mutex_lock(&signal_mutex); + signal(SIGTERM, catch_sigterm); - //signal(SIGINT, catch_sigterm); - while (! shutting_down) - { - sleep(24 * 3600); - } + signal(SIGINT, catch_sigterm); + + pthread_mutex_lock(&signal_mutex); } void itti_update_lte_time(uint32_t frame, uint8_t slot) {} -- GitLab