aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/lock.h
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-30 16:07:25 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-06-30 16:07:25 +0000
commit00ffa6d7f28ecbdb6c2eb59af180793e7c877205 (patch)
tree1bdb9d382b7518c4a02fb053e9e529e6d25b2173 /include/asterisk/lock.h
parentf9022c94ccbf58642ea8065837d976a157d9e960 (diff)
Merged revisions 126573 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r126573 | russell | 2008-06-30 11:05:08 -0500 (Mon, 30 Jun 2008) | 10 lines 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: http://svn.digium.com/svn/asterisk/trunk@126574 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/lock.h')
-rw-r--r--include/asterisk/lock.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h
index 475e49a99..33af56405 100644
--- a/include/asterisk/lock.h
+++ b/include/asterisk/lock.h
@@ -1469,14 +1469,14 @@ static inline int _ast_rwlock_trywrlock(ast_rwlock_t *t, const char *name,
#else /* !DEBUG_THREADS */
#define CHANNEL_DEADLOCK_AVOIDANCE(chan) \
- ast_channel_lock(chan); \
+ ast_channel_unlock(chan); \
usleep(1); \
- ast_channel_unlock(chan);
+ ast_channel_lock(chan);
#define DEADLOCK_AVOIDANCE(lock) \
- ast_mutex_lock(lock); \
+ ast_mutex_unlock(lock); \
usleep(1); \
- ast_mutex_unlock(lock);
+ ast_mutex_lock(lock);
#define DLA_UNLOCK(lock) ast_mutex_unlock(lock)