From 8871dc3255dd38dac2af4bdac5324103425b1940 Mon Sep 17 00:00:00 2001 From: gichan Date: Thu, 14 Jul 2022 11:45:32 +0900 Subject: [PATCH] [Edge] Change thread attribute pthread_join can wait joinable thread. So, change thread attribute. Signed-off-by: gichan --- src/libnnstreamer-edge/nnstreamer-edge-internal.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libnnstreamer-edge/nnstreamer-edge-internal.c b/src/libnnstreamer-edge/nnstreamer-edge-internal.c index d50b4e8..66e6963 100644 --- a/src/libnnstreamer-edge/nnstreamer-edge-internal.c +++ b/src/libnnstreamer-edge/nnstreamer-edge-internal.c @@ -434,9 +434,11 @@ _nns_edge_close_connection (nns_edge_conn_s * conn) if (!conn) return false; - if (conn->running) { + if (conn->running && conn->msg_thread) { conn->running = 0; + pthread_cancel (conn->msg_thread); pthread_join (conn->msg_thread, NULL); + conn->msg_thread = 0; } if (conn->socket) { @@ -807,7 +809,7 @@ _nns_edge_create_message_thread (nns_edge_handle_s * eh, nns_edge_conn_s * conn, /** Create message receving thread */ pthread_attr_init (&attr); - pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED); + pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_JOINABLE); conn->running = 1; thread_data->eh = eh; thread_data->conn = conn; -- 2.34.1