summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2009-03-23 13:18:19 +0000
committerNanang Izzuddin <nanang@teluu.com>2009-03-23 13:18:19 +0000
commitf6d652197d4a632059029f04745b4136d0d31e0a (patch)
treebf317df03629ace5feb2d21e0cbc5f6650015cd0
parenta27b0b1b90f77dac250745306a4bbb734c1a0f08 (diff)
Ticket #712: back-porting ticket #695
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.0@2540 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia/symbian_sound_aps.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/pjmedia/src/pjmedia/symbian_sound_aps.cpp b/pjmedia/src/pjmedia/symbian_sound_aps.cpp
index 6a8976b2..ea419c51 100644
--- a/pjmedia/src/pjmedia/symbian_sound_aps.cpp
+++ b/pjmedia/src/pjmedia/symbian_sound_aps.cpp
@@ -367,6 +367,18 @@ CPjAudioEngine::~CPjAudioEngine()
delete iRecCommHandler;
iRecCommHandler = NULL;
+ // On some devices, immediate closing after stopping may cause APS server
+ // panic KERN-EXEC 0, so let's wait for sometime before really closing
+ // the client session.
+ TTime start, now;
+ enum { APS_CLOSE_WAIT_TIME = 200 }; /* in msecs */
+
+ start.UniversalTime();
+ do {
+ pj_symbianos_poll(-1, APS_CLOSE_WAIT_TIME);
+ now.UniversalTime();
+ } while (now.MicroSecondsFrom(start) < APS_CLOSE_WAIT_TIME * 1000);
+
iSession.Close();
if (state_ == STATE_READY) {