summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2007-12-07 21:25:03 +0000
committerRussell Bryant <russell@russellbryant.com>2007-12-07 21:25:03 +0000
commit8093fa188b8e7eb00359799de96c64eb74a9505d (patch)
tree4eea246f56d7999b7dedcbfbab2abf85e46776fe /main
parent90614c7018aa7e920ba6d58e8b7468a0e0b5a505 (diff)
Merged revisions 91830 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r91830 | russell | 2007-12-07 15:24:33 -0600 (Fri, 07 Dec 2007) | 5 lines Make the lock protecting each thread's list of locks it currently holds recursive. I think that this will fix the situation where some people have said that "core show locks" locks up the CLI. (related to issue #11080) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@91831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/utils.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/main/utils.c b/main/utils.c
index 949ed10d1..ddd5f0efd 100644
--- a/main/utils.c
+++ b/main/utils.c
@@ -825,6 +825,7 @@ static void *dummy_start(void *data)
struct thr_arg a = *((struct thr_arg *) data); /* make a local copy */
#ifdef DEBUG_THREADS
struct thr_lock_info *lock_info;
+ pthread_mutexattr_t mutex_attr;
#endif
/* note that even though data->name is a pointer to allocated memory,
@@ -842,7 +843,11 @@ static void *dummy_start(void *data)
lock_info->thread_id = pthread_self();
lock_info->thread_name = strdup(a.name);
- pthread_mutex_init(&lock_info->lock, NULL);
+
+ pthread_mutexattr_init(&mutex_attr);
+ pthread_mutexattr_settype(&mutex_attr, AST_MUTEX_KIND);
+ pthread_mutex_init(&lock_info->lock, &mutex_attr);
+ pthread_mutexattr_destroy(&mutex_attr);
pthread_mutex_lock(&lock_infos_lock.mutex); /* Intentionally not the wrapper */
AST_LIST_INSERT_TAIL(&lock_infos, lock_info, entry);