Add lock tracking for rwlocks. Previously, lock.h only had the ability to

hold tracking information for mutexes.  Now, the "core show locks" output
will output information about who is holding a rwlock when a thread is
waiting on it.

(closes issue #11279)
Reported by: ys
Patches:
      trunk_lock_utils.v8.diff uploaded by ys (license 281)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@120064 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2008-06-03 18:26:51 +00:00
parent 95a05794cf
commit 51051ce949
5 changed files with 580 additions and 306 deletions

View File

@@ -4988,7 +4988,7 @@ int __ast_channel_unlock(struct ast_channel *chan, const char *filename, int lin
if (option_debug > 2) {
#ifdef DEBUG_THREADS
int count = 0;
if ((count = chan->lock_dont_use.reentrancy))
if ((count = chan->lock_dont_use.track.reentrancy))
ast_debug(3, ":::=== Still have %d locks (recursive)\n", count);
#endif
if (!res)
@@ -5022,7 +5022,7 @@ int __ast_channel_lock(struct ast_channel *chan, const char *filename, int linen
if (option_debug > 3) {
#ifdef DEBUG_THREADS
int count = 0;
if ((count = chan->lock_dont_use.reentrancy))
if ((count = chan->lock_dont_use.track.reentrancy))
ast_debug(4, ":::=== Now have %d locks (recursive)\n", count);
#endif
if (!res)
@@ -5054,7 +5054,7 @@ int __ast_channel_trylock(struct ast_channel *chan, const char *filename, int li
if (option_debug > 2) {
#ifdef DEBUG_THREADS
int count = 0;
if ((count = chan->lock_dont_use.reentrancy))
if ((count = chan->lock_dont_use.track.reentrancy))
ast_debug(3, ":::=== Now have %d locks (recursive)\n", count);
#endif
if (!res)