pthread_join can wait joinable thread.
So, change thread attribute.
Signed-off-by: gichan <gichan2.jang@samsung.com>
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) {
/** 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;