From 44da63507aa7f6843aa2af73f144d47e5585047b Mon Sep 17 00:00:00 2001 From: russell Date: Wed, 10 May 2006 15:41:23 +0000 Subject: [PATCH] remove some chekc sof the result of ast_mutex_lock (issue #7119, Mithraen) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@26531 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/chan_sip.c | 71 ++++++++++++----------------- channels/chan_zap.c | 109 +++++++++++++++++--------------------------- 2 files changed, 69 insertions(+), 111 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 1f0848a33..dea21a7ef 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12153,10 +12153,7 @@ static int restart_monitor(void) /* If we're supposed to be stopped -- stay stopped */ if (monitor_thread == AST_PTHREADT_STOP) return 0; - if (ast_mutex_lock(&monlock)) { - ast_log(LOG_WARNING, "Unable to lock monitor\n"); - return -1; - } + ast_mutex_lock(&monlock); if (monitor_thread == pthread_self()) { ast_mutex_unlock(&monlock); ast_log(LOG_WARNING, "Cannot kill myself\n"); @@ -13994,51 +13991,39 @@ static int unload_module(void *mod) ast_manager_unregister("SIPpeers"); ast_manager_unregister("SIPshowpeer"); - if (!ast_mutex_lock(&iflock)) { - /* Hangup all interfaces if they have an owner */ - for (p = iflist; p ; p = p->next) { - if (p->owner) - ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD); - } - ast_mutex_unlock(&iflock); - } else { - ast_log(LOG_WARNING, "Unable to lock the interface list\n"); - return -1; + ast_mutex_lock(&iflock); + /* Hangup all interfaces if they have an owner */ + for (p = iflist; p ; p = p->next) { + if (p->owner) + ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD); } + ast_mutex_unlock(&iflock); - if (!ast_mutex_lock(&monlock)) { - if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP)) { - pthread_cancel(monitor_thread); - pthread_kill(monitor_thread, SIGURG); - pthread_join(monitor_thread, NULL); - } - monitor_thread = AST_PTHREADT_STOP; - ast_mutex_unlock(&monlock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + ast_mutex_lock(&monlock); + if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP)) { + pthread_cancel(monitor_thread); + pthread_kill(monitor_thread, SIGURG); + pthread_join(monitor_thread, NULL); } + monitor_thread = AST_PTHREADT_STOP; + ast_mutex_unlock(&monlock); - if (!ast_mutex_lock(&iflock)) { - /* Destroy all the interfaces and free their memory */ - p = iflist; - while (p) { - pl = p; - p = p->next; - /* Free associated memory */ - ast_mutex_destroy(&pl->lock); - if (pl->chanvars) { - ast_variables_destroy(pl->chanvars); - pl->chanvars = NULL; - } - free(pl); + ast_mutex_lock(&iflock); + /* Destroy all the interfaces and free their memory */ + p = iflist; + while (p) { + pl = p; + p = p->next; + /* Free associated memory */ + ast_mutex_destroy(&pl->lock); + if (pl->chanvars) { + ast_variables_destroy(pl->chanvars); + pl->chanvars = NULL; } - iflist = NULL; - ast_mutex_unlock(&iflock); - } else { - ast_log(LOG_WARNING, "Unable to lock the interface list\n"); - return -1; + free(pl); } + iflist = NULL; + ast_mutex_unlock(&iflock); /* Free memory for local network address mask */ ast_free_ha(localaddr); diff --git a/channels/chan_zap.c b/channels/chan_zap.c index c4181d708..60a6fafcd 100644 --- a/channels/chan_zap.c +++ b/channels/chan_zap.c @@ -6539,10 +6539,7 @@ static void *do_monitor(void *data) #endif for(;;) { /* Lock the interface list */ - if (ast_mutex_lock(&iflock)) { - ast_log(LOG_ERROR, "Unable to grab interface lock\n"); - return NULL; - } + ast_mutex_lock(&iflock); if (!pfds || (lastalloc != ifcount)) { if (pfds) free(pfds); @@ -6588,10 +6585,7 @@ static void *do_monitor(void *data) } /* Alright, lock the interface list again, and let's look and see what has happened */ - if (ast_mutex_lock(&iflock)) { - ast_log(LOG_WARNING, "Unable to lock the interface list\n"); - continue; - } + ast_mutex_lock(&iflock); found = 0; spoint = 0; lastpass = thispass; @@ -6731,10 +6725,7 @@ static int restart_monitor(void) /* If we're supposed to be stopped -- stay stopped */ if (monitor_thread == AST_PTHREADT_STOP) return 0; - if (ast_mutex_lock(&monlock)) { - ast_log(LOG_WARNING, "Unable to lock monitor\n"); - return -1; - } + ast_mutex_lock(&monlock); if (monitor_thread == pthread_self()) { ast_mutex_unlock(&monlock); ast_log(LOG_WARNING, "Cannot kill myself\n"); @@ -7609,10 +7600,7 @@ static struct ast_channel *zt_request(const char *type, int format, void *data, } } /* Search for an unowned channel */ - if (ast_mutex_lock(lock)) { - ast_log(LOG_ERROR, "Unable to lock interface list???\n"); - return NULL; - } + ast_mutex_lock(lock); exit = p; while(p && !tmp) { if (roundrobin) @@ -10103,57 +10091,45 @@ static int __unload_module(void) ast_manager_unregister( "ZapDNDon" ); ast_manager_unregister("ZapShowChannels"); ast_channel_unregister(&zap_tech); - if (!ast_mutex_lock(&iflock)) { - /* Hangup all interfaces if they have an owner */ - p = iflist; - while(p) { - if (p->owner) - ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD); - p = p->next; - } - ast_mutex_unlock(&iflock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + ast_mutex_lock(&iflock); + /* Hangup all interfaces if they have an owner */ + p = iflist; + while(p) { + if (p->owner) + ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD); + p = p->next; } - if (!ast_mutex_lock(&monlock)) { - if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP) && (monitor_thread != AST_PTHREADT_NULL)) { - pthread_cancel(monitor_thread); - pthread_kill(monitor_thread, SIGURG); - pthread_join(monitor_thread, NULL); - } - monitor_thread = AST_PTHREADT_STOP; - ast_mutex_unlock(&monlock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + ast_mutex_unlock(&iflock); + ast_mutex_lock(&monlock); + if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP) && (monitor_thread != AST_PTHREADT_NULL)) { + pthread_cancel(monitor_thread); + pthread_kill(monitor_thread, SIGURG); + pthread_join(monitor_thread, NULL); } + monitor_thread = AST_PTHREADT_STOP; + ast_mutex_unlock(&monlock); - if (!ast_mutex_lock(&iflock)) { - /* Destroy all the interfaces and free their memory */ - p = iflist; - while(p) { - /* Free any callerid */ - if (p->cidspill) - free(p->cidspill); - /* Close the zapata thingy */ - if (p->subs[SUB_REAL].zfd > -1) - zt_close(p->subs[SUB_REAL].zfd); - pl = p; - p = p->next; - x++; - /* Free associated memory */ - if(pl) - destroy_zt_pvt(&pl); - ast_verbose(VERBOSE_PREFIX_3 "Unregistered channel %d\n", x); - } - iflist = NULL; - ifcount = 0; - ast_mutex_unlock(&iflock); - } else { - ast_log(LOG_WARNING, "Unable to lock the monitor\n"); - return -1; + ast_mutex_lock(&iflock); + /* Destroy all the interfaces and free their memory */ + p = iflist; + while(p) { + /* Free any callerid */ + if (p->cidspill) + free(p->cidspill); + /* Close the zapata thingy */ + if (p->subs[SUB_REAL].zfd > -1) + zt_close(p->subs[SUB_REAL].zfd); + pl = p; + p = p->next; + x++; + /* Free associated memory */ + if(pl) + destroy_zt_pvt(&pl); + ast_verbose(VERBOSE_PREFIX_3 "Unregistered channel %d\n", x); } + iflist = NULL; + ifcount = 0; + ast_mutex_unlock(&iflock); #ifdef HAVE_LIBPRI for(i=0;i