Use better flags when starting MGCP threads (bug #598)
authorMark Spencer <markster@digium.com>
Mon, 2 Feb 2004 00:46:59 +0000 (00:46 +0000)
committerMark Spencer <markster@digium.com>
Mon, 2 Feb 2004 00:46:59 +0000 (00:46 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2106 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_mgcp.c

index 38a5483..901f413 100755 (executable)
@@ -2069,6 +2069,9 @@ static void handle_hd_hf(struct mgcp_subchannel *sub, char *ev)
     struct mgcp_endpoint *p = sub->parent;
     struct ast_channel *c;
        pthread_t t;
+       pthread_attr_t attr;
+       pthread_attr_init(&attr);
+        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);   
 
     /* Off hook / answer */
     if (sub->outgoing) {
@@ -2113,7 +2116,7 @@ static void handle_hd_hf(struct mgcp_subchannel *sub, char *ev)
                 }
                 c = mgcp_new(sub, AST_STATE_DOWN);
                 if (c) {
-                    if (pthread_create(&t, NULL, mgcp_ss, c)) {
+                    if (pthread_create(&t, &attr, mgcp_ss, c)) {
                         ast_log(LOG_WARNING, "Unable to create switch thread: %s\n", strerror(errno));
                         ast_hangup(c);
                     }
@@ -2548,6 +2551,10 @@ static void *do_monitor(void *data)
 
 static int restart_monitor(void)
 {
+       pthread_attr_t attr;
+       pthread_attr_init(&attr);
+        pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);   
+
        /* If we're supposed to be stopped -- stay stopped */
        if (monitor_thread == (pthread_t) -2)
                return 0;
@@ -2565,7 +2572,7 @@ static int restart_monitor(void)
                pthread_kill(monitor_thread, SIGURG);
        } else {
                /* Start a new monitor */
-               if (pthread_create(&monitor_thread, NULL, do_monitor, NULL) < 0) {
+               if (pthread_create(&monitor_thread, &attr, do_monitor, NULL) < 0) {
                        ast_mutex_unlock(&monlock);
                        ast_log(LOG_ERROR, "Unable to start monitor thread.\n");
                        return -1;