summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2007-01-05 17:10:59 +0000
committerKevin P. Fleming <kpfleming@digium.com>2007-01-05 17:10:59 +0000
commita8dc50812f80b24548102a727a0a64b5242db357 (patch)
tree3cd69ed5a1753f38832c2fed14007bdd63ead1e6 /channels/chan_iax2.c
parent2288b11bf4913a2171077ae743ac6a1084bcd5fb (diff)
Merged revisions 49636 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ................ r49636 | kpfleming | 2007-01-05 11:09:00 -0600 (Fri, 05 Jan 2007) | 10 lines Merged revisions 49635 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r49635 | kpfleming | 2007-01-05 10:56:40 -0600 (Fri, 05 Jan 2007) | 2 lines ensure that threads which are supposed to be detached (because we aren't going to wait on them) are created properly ........ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index d3b816bc6..46158be59 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -6134,16 +6134,20 @@ static void spawn_dp_lookup(int callno, const char *context, const char *calledn
{
pthread_t newthread;
struct dpreq_data *dpr;
+ pthread_attr_t attr;
if (!(dpr = ast_calloc(1, sizeof(*dpr))))
return;
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
dpr->callno = callno;
ast_copy_string(dpr->context, context, sizeof(dpr->context));
ast_copy_string(dpr->callednum, callednum, sizeof(dpr->callednum));
if (callerid)
dpr->callerid = ast_strdup(callerid);
- if (ast_pthread_create(&newthread, NULL, dp_lookup_thread, dpr)) {
+ if (ast_pthread_create(&newthread, &attr, dp_lookup_thread, dpr)) {
ast_log(LOG_WARNING, "Unable to start lookup thread!\n");
}
}
@@ -6213,9 +6217,14 @@ static int iax_park(struct ast_channel *chan1, struct ast_channel *chan2)
return -1;
}
if ((d = ast_calloc(1, sizeof(*d)))) {
+ pthread_attr_t attr;
+
+ pthread_attr_init(&attr);
+ pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
d->chan1 = chan1m;
d->chan2 = chan2m;
- if (!ast_pthread_create_background(&th, NULL, iax_park_thread, d))
+ if (!ast_pthread_create_background(&th, &attr, iax_park_thread, d))
return 0;
free(d);
}