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);
|
size_t ast_heap_size(struct ast_heap *h);
|
||||||
|
|
||||||
|
#ifndef DEBUG_THREADS
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Write-Lock a heap
|
* \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);
|
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
|
* \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;
|
return h->cur_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DEBUG_THREADS
|
||||||
|
|
||||||
int ast_heap_wrlock(struct ast_heap *h)
|
int ast_heap_wrlock(struct ast_heap *h)
|
||||||
{
|
{
|
||||||
return ast_rwlock_wrlock(&h->lock);
|
return ast_rwlock_wrlock(&h->lock);
|
||||||
@@ -317,3 +319,21 @@ int ast_heap_unlock(struct ast_heap *h)
|
|||||||
return ast_rwlock_unlock(&h->lock);
|
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