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