Use ast_channel_trylock for channels
authorOlle Johansson <oej@edvina.net>
Wed, 31 May 2006 14:28:29 +0000 (14:28 +0000)
committerOlle Johansson <oej@edvina.net>
Wed, 31 May 2006 14:28:29 +0000 (14:28 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30990 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 8b2096e..e25727f 100644 (file)
@@ -1588,8 +1588,8 @@ static int retrans_pkt(void *data)
        pkt->retransid = -1;
 
        if (ast_test_flag(pkt, FLAG_FATAL)) {
-               while(pkt->owner->owner && ast_mutex_trylock(&pkt->owner->owner->lock)) {
-                       ast_mutex_unlock(&pkt->owner->lock);
+               while(pkt->owner->owner && ast_channel_trylock(pkt->owner->owner)) {
+                       ast_mutex_unlock(&pkt->owner->lock);    /* SIP_PVT, not channel */
                        usleep(1);
                        ast_mutex_lock(&pkt->owner->lock);
                }
@@ -7186,7 +7186,7 @@ static struct sip_pvt *get_sip_pvt_byid_locked(const char *callid, const char *t
                                        sip_pvt_ptr->theirtag, sip_pvt_ptr->tag);
 
                        /* deadlock avoidance... */
-                       while (sip_pvt_ptr->owner && ast_mutex_trylock(&sip_pvt_ptr->owner->lock)) {
+                       while (sip_pvt_ptr->owner && ast_channel_trylock(sip_pvt_ptr->owner)) {
                                ast_mutex_unlock(&sip_pvt_ptr->lock);
                                usleep(1);
                                ast_mutex_lock(&sip_pvt_ptr->lock);