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