diff options
author | Luigi Rizzo <rizzo@icir.org> | 2007-11-15 16:20:47 +0000 |
---|---|---|
committer | Luigi Rizzo <rizzo@icir.org> | 2007-11-15 16:20:47 +0000 |
commit | 09d9cce1d8df6e181b60cd00fb1708ebe012069d (patch) | |
tree | 893184ac838560b42d47dd3e9c413812c920645b /include | |
parent | 139978dbb7388060c3d24fdd3a356744170c1ef8 (diff) |
access channel locks through ast_channel_lock/unlock/trylock and not
through ast_mutex primitives.
To detect all occurrences, I have renamed the lock field in struct ast_channel
so it is clear that it shouldn't be used directly.
There are some uses in res/res_features.c (see details of the diff)
that are error prone as they try and lock two channels without
caring about the order (or without explaining why it is safe).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89293 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/channel.h | 2 | ||||
-rw-r--r-- | include/asterisk/lock.h | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h index 15af0c722..327096d55 100644 --- a/include/asterisk/channel.h +++ b/include/asterisk/channel.h @@ -421,7 +421,7 @@ struct ast_channel { directly, use ast_softhangup() */ time_t whentohangup; /*!< Non-zero, set to actual time when channel is to be hung up */ pthread_t blocker; /*!< If anyone is blocking, this is them */ - ast_mutex_t lock; /*!< Lock, can be used to lock a channel for some operations - see ast_channel_lock() */ + ast_mutex_t lock_dont_use; /*!< Lock, can be used to lock a channel for some operations - see ast_channel_lock() */ const char *blockproc; /*!< Procedure causing blocking */ const char *appl; /*!< Current application */ diff --git a/include/asterisk/lock.h b/include/asterisk/lock.h index c04d00aaa..52164ed03 100644 --- a/include/asterisk/lock.h +++ b/include/asterisk/lock.h @@ -1167,13 +1167,13 @@ AST_INLINE_API(int ast_atomic_dec_and_test(volatile int *p), #ifndef DEBUG_CHANNEL_LOCKS /*! \brief Lock a channel. If DEBUG_CHANNEL_LOCKS is defined in the Makefile, print relevant output for debugging */ -#define ast_channel_lock(x) ast_mutex_lock(&x->lock) +#define ast_channel_lock(x) ast_mutex_lock(&x->lock_dont_use) /*! \brief Unlock a channel. If DEBUG_CHANNEL_LOCKS is defined in the Makefile, print relevant output for debugging */ -#define ast_channel_unlock(x) ast_mutex_unlock(&x->lock) +#define ast_channel_unlock(x) ast_mutex_unlock(&x->lock_dont_use) /*! \brief Try locking a channel. If DEBUG_CHANNEL_LOCKS is defined in the Makefile, print relevant output for debugging */ -#define ast_channel_trylock(x) ast_mutex_trylock(&x->lock) +#define ast_channel_trylock(x) ast_mutex_trylock(&x->lock_dont_use) #else struct ast_channel; |