diff --git a/channels/chan_h323.c b/channels/chan_h323.c index cd6ca8e5f2..13526b9e5a 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -2604,7 +2604,7 @@ static int restart_monitor(void) pthread_kill(monitor_thread, SIGURG); } else { /* Start a new monitor */ - if (ast_pthread_create_detached_background(&monitor_thread, NULL, do_monitor, NULL) < 0) { + if (ast_pthread_create_background(&monitor_thread, NULL, do_monitor, NULL) < 0) { monitor_thread = AST_PTHREADT_NULL; ast_mutex_unlock(&monlock); ast_log(LOG_ERROR, "Unable to start monitor thread.\n"); @@ -3320,8 +3320,7 @@ static int unload_module(void) pthread_cancel(monitor_thread); } pthread_kill(monitor_thread, SIGURG); - /* Cannot join detached threads */ - /* pthread_join(monitor_thread, NULL); */ + pthread_join(monitor_thread, NULL); } monitor_thread = AST_PTHREADT_STOP; ast_mutex_unlock(&monlock); diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index 3c0c9fbfce..8b06980c14 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -5917,7 +5917,7 @@ static void *accept_thread(void *ignore) AST_LIST_INSERT_HEAD(&sessions, s, list); AST_LIST_UNLOCK(&sessions); - if (ast_pthread_create_detached(&s->t, NULL, skinny_session, s)) { + if (ast_pthread_create(&s->t, NULL, skinny_session, s)) { destroy_session(s); } }