From: Russell Bryant Date: Mon, 30 Jun 2008 16:05:08 +0000 (+0000) Subject: Fix a typo in the non-DEBUG_THREADS version of the recently added DEADLOCK_AVOIDANCE() X-Git-Tag: 1.4.22-rc1~167 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=791f9b12d385dac43b47b004250dfc1ec40974aa;p=thirdparty%2Fasterisk.git Fix a typo in the non-DEBUG_THREADS version of the recently added DEADLOCK_AVOIDANCE() macro. This caused the lock to not actually be released, and as a result, not avoid deadlocks at all. This resolves the issues reported in the last while about Asterisk locking up all over the place (and most commonly, in chan_iax2). (closes issue #12927) (closes issue #12940) (closes issue #12925) (potentially closes others ...) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@126573 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index 5b9664c55c..3e684f838e 100644 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -712,9 +712,9 @@ static inline int __ast_cond_timedwait(const char *filename, int lineno, const c #else /* !DEBUG_THREADS */ #define DEADLOCK_AVOIDANCE(lock) \ - ast_mutex_lock(lock); \ + ast_mutex_unlock(lock); \ usleep(1); \ - ast_mutex_unlock(lock); + ast_mutex_lock(lock); typedef pthread_mutex_t ast_mutex_t;