diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2009-02-06 12:14:15 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2009-02-06 12:14:15 +0000 |
commit | 13f5bc141a0f534d824185ceab4aa0e0ee54b2ec (patch) | |
tree | a087341ed0c25c3cfcad47bf8dce3d3d71a59a34 /pjmedia | |
parent | 25b955a2b88645c3a080e74eecdea4d09ff28357 (diff) |
Ticket #695: Inserted wait loop between stop() & close() of APS client session to allow 'APS server' performs clean stop (it is APS server who suffers panic KERN-EXEC 0).
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2443 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia')
-rw-r--r-- | pjmedia/src/pjmedia/symbian_sound_aps.cpp | 12 |
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) { |