From 18b3189d4e413c392684e19ad1062aa776c013ad Mon Sep 17 00:00:00 2001 From: Sakthivel Velumani Date: Mon, 5 Sep 2022 15:48:02 -0400 Subject: [PATCH] Fix to support subscribing event from external thread --- common/utils/ocp_itti/intertask_interface.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/common/utils/ocp_itti/intertask_interface.cpp b/common/utils/ocp_itti/intertask_interface.cpp index 82f7eb5774..8b888e1776 100644 --- a/common/utils/ocp_itti/intertask_interface.cpp +++ b/common/utils/ocp_itti/intertask_interface.cpp @@ -274,16 +274,12 @@ extern "C" { struct epoll_event events[t->nb_fd_epoll]; // Weird condition to deal with crap legacy itti interface - if ( t->nb_fd_epoll == 1 ) { - while (t->message_queue.empty()) { - itti_get_events_locked(task_id, events, t->nb_fd_epoll); - pthread_mutex_lock(&t->queue_cond_lock); - } - } else { - if (t->message_queue.empty()) { + if (t->message_queue.empty()) { + do { itti_get_events_locked(task_id, events, t->nb_fd_epoll); pthread_mutex_lock(&t->queue_cond_lock); } + while (t->message_queue.empty() && t->nb_fd_epoll == 1); } // Legacy design: we return even if we have no message