[Edge] Change thread attribute
authorgichan <gichan2.jang@samsung.com>
Thu, 14 Jul 2022 02:45:32 +0000 (11:45 +0900)
committerjaeyun-jung <39614140+jaeyun-jung@users.noreply.github.com>
Fri, 15 Jul 2022 05:09:31 +0000 (14:09 +0900)
pthread_join can wait joinable thread.
So, change thread attribute.

Signed-off-by: gichan <gichan2.jang@samsung.com>
src/libnnstreamer-edge/nnstreamer-edge-internal.c

index d50b4e811e9a0caeb352d812bd54b7ac02fdb675..66e696396e4af89d871465c9848de127acb1f78e 100644 (file)
@@ -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;