Merged revisions 49581 via svnmerge from
authorKevin P. Fleming <kpfleming@digium.com>
Thu, 4 Jan 2007 23:54:09 +0000 (23:54 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Thu, 4 Jan 2007 23:54:09 +0000 (23:54 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r49581 | kpfleming | 2007-01-04 17:50:15 -0600 (Thu, 04 Jan 2007) | 3 lines

create the IAX2 processing threads as background threads so they will use smaller stacks
when we create a dynamic thread, put it on the dynamic_list right away so we don't lose track of it

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49584 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 4d6a497..74a6e2c 100644 (file)
@@ -917,11 +917,15 @@ static struct iax2_thread *find_idle_thread(void)
        ast_cond_init(&thread->cond, NULL);
 
        /* Create thread and send it on it's way */
-       if (ast_pthread_create(&thread->threadid, NULL, iax2_process_thread, thread)) {
+       if (ast_pthread_create_background(&thread->threadid, NULL, iax2_process_thread, thread)) {
                ast_cond_destroy(&thread->cond);
                ast_mutex_destroy(&thread->lock);
                free(thread);
                thread = NULL;
+       } else {
+               AST_LIST_LOCK(&dynamic_list);
+               AST_LIST_INSERT_TAIL(&dynamic_list, thread, list);
+               AST_LIST_UNLOCK(&dynamic_list);
        }
 
        return thread;
@@ -8199,7 +8203,7 @@ static int start_network_thread(void)
                        thread->threadnum = ++threadcount;
                        ast_mutex_init(&thread->lock);
                        ast_cond_init(&thread->cond, NULL);
-                       if (ast_pthread_create(&thread->threadid, NULL, iax2_process_thread, thread)) {
+                       if (ast_pthread_create_background(&thread->threadid, NULL, iax2_process_thread, thread)) {
                                ast_log(LOG_WARNING, "Failed to create new thread!\n");
                                free(thread);
                                thread = NULL;