From d17e09f097a3964e114da7768558c02df420a1b1 Mon Sep 17 00:00:00 2001 From: Yongjoo Ahn Date: Tue, 16 Apr 2024 17:59:59 +0900 Subject: [PATCH] [common] Let edge wait listener thread to be started. - Let the edge wait listener_thread to be properly started. - This fix occasional hangs when nns_edge_release_handle called. Signed-off-by: Yongjoo Ahn --- src/libnnstreamer-edge/nnstreamer-edge-internal.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index c1b892b..7760dd2 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -1165,7 +1165,11 @@ _nns_edge_socket_listener_thread (void *thread_data) { nns_edge_handle_s *eh = (nns_edge_handle_s *) thread_data; + nns_edge_lock (eh); eh->listening = true; + nns_edge_cond_signal (eh); + nns_edge_unlock (eh); + while (eh->listening) { struct pollfd poll_fd; @@ -1235,6 +1239,9 @@ _nns_edge_create_socket_listener (nns_edge_handle_s * eh) goto error; } + /* Wait for the listener thread to be started */ + nns_edge_cond_wait (eh); + done = true; error: -- 2.34.1