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/tags/1.4.21.1@126578 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Russell Bryant 18 years ago
parent 40e6cefe02
commit e31f7fb4ee

@ -712,9 +712,9 @@ static inline int __ast_cond_timedwait(const char *filename, int lineno, const c
#else /* !DEBUG_THREADS */ #else /* !DEBUG_THREADS */
#define DEADLOCK_AVOIDANCE(lock) \ #define DEADLOCK_AVOIDANCE(lock) \
ast_mutex_lock(lock); \ ast_mutex_unlock(lock); \
usleep(1); \ usleep(1); \
ast_mutex_unlock(lock); ast_mutex_lock(lock);
typedef pthread_mutex_t ast_mutex_t; typedef pthread_mutex_t ast_mutex_t;

Loading…
Cancel
Save