diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-05 17:10:59 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-01-05 17:10:59 +0000 |
commit | 5fb9f8ae1cea593a8a503a767cc7046665f2ece3 (patch) | |
tree | 3cd69ed5a1753f38832c2fed14007bdd63ead1e6 /channels/chan_iax2.c | |
parent | 70037743883a294d3163897d6f2d0f62281dc8eb (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: http://svn.digium.com/svn/asterisk/trunk@49637 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r-- | channels/chan_iax2.c | 13 |
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); } |