summaryrefslogtreecommitdiff
path: root/manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'manager.c')
-rwxr-xr-xmanager.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/manager.c b/manager.c
index a0c06f5a5..638c951b0 100755
--- a/manager.c
+++ b/manager.c
@@ -530,6 +530,10 @@ static void *accept_thread(void *ignore)
struct sockaddr_in sin;
int sinlen;
struct mansession *s;
+ pthread_attr_t attr;
+
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
for (;;) {
sinlen = sizeof(sin);
as = accept(asock, &sin, &sinlen);
@@ -550,9 +554,10 @@ static void *accept_thread(void *ignore)
s->next = sessions;
sessions = s;
ast_pthread_mutex_unlock(&sessionlock);
- if (pthread_create(&t, NULL, session_do, s))
+ if (pthread_create(&t, &attr, session_do, s))
destroy_session(s);
}
+ pthread_attr_destroy(&attr);
return NULL;
}