mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-19 11:42:27 +00:00
Pass more useful information through to lock tracking when DEBUG_THREADS is on.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@184512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -209,6 +209,8 @@ void *ast_heap_peek(struct ast_heap *h, unsigned int index);
|
||||
*/
|
||||
size_t ast_heap_size(struct ast_heap *h);
|
||||
|
||||
#ifndef DEBUG_THREADS
|
||||
|
||||
/*!
|
||||
* \brief Write-Lock a heap
|
||||
*
|
||||
@@ -247,6 +249,17 @@ int ast_heap_rdlock(struct ast_heap *h);
|
||||
*/
|
||||
int ast_heap_unlock(struct ast_heap *h);
|
||||
|
||||
#else /* DEBUG_THREADS */
|
||||
|
||||
#define ast_heap_wrlock(h) __ast_heap_wrlock(h, __FILE__, __PRETTY_FUNCTION__, __LINE__)
|
||||
int __ast_heap_wrlock(struct ast_heap *h, const char *file, const char *func, int line);
|
||||
#define ast_heap_rdlock(h) __ast_heap_rdlock(h, __FILE__, __PRETTY_FUNCTION__, __LINE__)
|
||||
int __ast_heap_rdlock(struct ast_heap *h, const char *file, const char *func, int line);
|
||||
#define ast_heap_unlock(h) __ast_heap_unlock(h, __FILE__, __PRETTY_FUNCTION__, __LINE__)
|
||||
int __ast_heap_unlock(struct ast_heap *h, const char *file, const char *func, int line);
|
||||
|
||||
#endif /* DEBUG_THREADS */
|
||||
|
||||
/*!
|
||||
* \brief Verify that a heap has been properly constructed
|
||||
*
|
||||
|
20
main/heap.c
20
main/heap.c
@@ -302,6 +302,8 @@ size_t ast_heap_size(struct ast_heap *h)
|
||||
return h->cur_len;
|
||||
}
|
||||
|
||||
#ifndef DEBUG_THREADS
|
||||
|
||||
int ast_heap_wrlock(struct ast_heap *h)
|
||||
{
|
||||
return ast_rwlock_wrlock(&h->lock);
|
||||
@@ -317,3 +319,21 @@ int ast_heap_unlock(struct ast_heap *h)
|
||||
return ast_rwlock_unlock(&h->lock);
|
||||
}
|
||||
|
||||
#else /* DEBUG_THREADS */
|
||||
|
||||
int __ast_heap_wrlock(struct ast_heap *h, const char *file, const char *func, int line)
|
||||
{
|
||||
return _ast_rwlock_wrlock(&h->lock, "&h->lock", file, line, func);
|
||||
}
|
||||
|
||||
int __ast_heap_rdlock(struct ast_heap *h, const char *file, const char *func, int line)
|
||||
{
|
||||
return _ast_rwlock_rdlock(&h->lock, "&h->lock", file, line, func);
|
||||
}
|
||||
|
||||
int __ast_heap_unlock(struct ast_heap *h, const char *file, const char *func, int line)
|
||||
{
|
||||
return _ast_rwlock_unlock(&h->lock, "&h->lock", file, line, func);
|
||||
}
|
||||
|
||||
#endif /* DEBUG_THREADS */
|
||||
|
Reference in New Issue
Block a user