thanks to Russel, for pointing out that the dialoglist_lock/unlock routines also...
authorSteve Murphy <murf@digium.com>
Tue, 31 Jul 2007 15:59:01 +0000 (15:59 +0000)
committerSteve Murphy <murf@digium.com>
Tue, 31 Jul 2007 15:59:01 +0000 (15:59 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77829 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 4770c9c..f2f031e 100644 (file)
@@ -1136,6 +1136,7 @@ static struct sip_pvt *dialoglist = NULL;
 /*! \brief Protect the SIP dialog list (of sip_pvt's) */
 AST_MUTEX_DEFINE_STATIC(dialoglock);
 
+#ifndef DETECT_DEADLOCKS
 /*! \brief hide the way the list is locked/unlocked */
 static void dialoglist_lock(void)
 {
@@ -1146,6 +1147,12 @@ static void dialoglist_unlock(void)
 {
        ast_mutex_unlock(&dialoglock);
 }
+#else
+/* we don't want to HIDE the information about where the lock was requested if trying to debug 
+ * deadlocks!  So, just make these macros! */
+#define dialoglist_lock(x) ast_mutex_lock(&dialoglock)
+#define dialoglist_unlock(x) ast_mutex_unlock(&dialoglock)
+#endif
 
 /*!
  * when we create or delete references, make sure to use these