From 953b8d0d8021decd31ce42a0b052a2f7c023e45c Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.net>
Date: Tue, 16 Jun 2009 09:35:30 -0400
Subject: [PATCH] [#1678] Some usefull debug messages for mutex/semaphore
 deadlock problem

---
 sflphone-common/src/audio/audiortp.cpp | 10 +++++++++-
 sflphone-common/src/audio/audiortp.h   |  2 +-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/sflphone-common/src/audio/audiortp.cpp b/sflphone-common/src/audio/audiortp.cpp
index e82381872f..36863ca4f8 100644
--- a/sflphone-common/src/audio/audiortp.cpp
+++ b/sflphone-common/src/audio/audiortp.cpp
@@ -90,8 +90,9 @@ AudioRtp::closeRtpSession () {
     ost::MutexLock m(_threadMutex);
     // This will make RTP threads finish.
     _debug("AudioRtp::Stopping rtp session\n");
-    try {
+    
 
+    try {
         delete _RTXThread; _RTXThread = 0;
     } catch(...) {
         _debugException("! ARTP Exception: when stopping audiortp\n");
@@ -100,6 +101,7 @@ AudioRtp::closeRtpSession () {
     AudioLayer* audiolayer = Manager::instance().getAudioDriver();
     // audiolayer->stopStream();
 
+    _debug("AudioRtp::Audio rtp stopped\n");
     return true;
 }
 
@@ -141,7 +143,10 @@ AudioRtpRTX::AudioRtpRTX (SIPCall *sipcall, bool sym) : time(new ost::Time()), _
 }
 
 AudioRtpRTX::~AudioRtpRTX () {
+
+    _debug("Delete AudioRtpRTX instance\n");
     _start.wait();
+    _debug("Just passed AudioRtpRTX semaphore wait\n");
 
     try {
         this->terminate();
@@ -154,9 +159,11 @@ AudioRtpRTX::~AudioRtpRTX () {
         delete _sessionRecv; _sessionRecv = NULL;
         delete _sessionSend; _sessionSend = NULL;
     } else {
+        _debug("Delete ost::RTPSession in AudioRtpRTX\n");
         delete _session;     _session = NULL;
     }
 
+    _debug("Just killed AudioRtpRTX rtp sessions\n");
 
     delete [] micData;  micData = NULL;
     delete [] micDataConverted;  micDataConverted = NULL;
@@ -169,6 +176,7 @@ AudioRtpRTX::~AudioRtpRTX () {
 
     delete converter; converter = NULL;
 
+    _debug("AudioRtpRTX instance deleted with all ring buffers, and converters\n");
 }
 
 
diff --git a/sflphone-common/src/audio/audiortp.h b/sflphone-common/src/audio/audiortp.h
index b0466afa18..f063cf2fab 100644
--- a/sflphone-common/src/audio/audiortp.h
+++ b/sflphone-common/src/audio/audiortp.h
@@ -53,7 +53,7 @@ class AudioRtpRTX : public ost::Thread, public ost::TimerPort {
      * @param sipcall The pointer on the SIP call
      * @param sym     Tells whether or not the voip links are symmetric
      */
-  AudioRtpRTX (SIPCall* sipcall, bool sym);
+    AudioRtpRTX (SIPCall* sipcall, bool sym);
 
     /**
      * Destructor
-- 
GitLab