]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
automerge commit
authorAutomerge script <automerge@asterisk.org>
Mon, 3 Jul 2006 06:03:44 +0000 (06:03 +0000)
committerAutomerge script <automerge@asterisk.org>
Mon, 3 Jul 2006 06:03:44 +0000 (06:03 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2-netsec@36776 65c4cc65-6c06-0410-ace0-fbb531ad65f3

asterisk.c

index b10dcba10c1afe806ad06940b17a9ba0ad0cb4a4..abb0a43927487238e1a9f41a5c51a8b927e3095a 100644 (file)
@@ -592,6 +592,7 @@ static void *listener(void *unused)
                fds[0].fd = ast_socket;
                fds[0].events= POLLIN;
                s = poll(fds, 1, -1);
+               pthread_testcancel();
                if (s < 0) {
                        if (errno != EINTR)
                                ast_log(LOG_WARNING, "poll returned error: %s\n", strerror(errno));
@@ -905,13 +906,13 @@ static void quit_handler(int num, int nice, int safeshutdown, int restart)
                ast_log(LOG_DEBUG, "Asterisk ending (%d).\n", num);
        manager_event(EVENT_FLAG_SYSTEM, "Shutdown", "Shutdown: %s\r\nRestart: %s\r\n", ast_active_channels() ? "Uncleanly" : "Cleanly", restart ? "True" : "False");
        if (ast_socket > -1) {
+               pthread_cancel(lthread);
                close(ast_socket);
                ast_socket = -1;
+               unlink(ast_config_AST_SOCKET);
        }
        if (ast_consock > -1)
                close(ast_consock);
-       if (ast_socket > -1)
-               unlink((char *)ast_config_AST_SOCKET);
        if (!option_remote) unlink((char *)ast_config_AST_PID);
        printf(term_quit());
        if (restart) {