diff -r 43d09473c595 -r 128eb6a32b84 mmserv/sts/stsserver/src/stsserversession.cpp --- a/mmserv/sts/stsserver/src/stsserversession.cpp Fri May 14 16:22:35 2010 +0300 +++ b/mmserv/sts/stsserver/src/stsserversession.cpp Thu May 27 13:20:50 2010 +0300 @@ -29,6 +29,7 @@ CStsServerSession::~CStsServerSession() { + CleanUpObservers(); TStsCallBack callBack; callBack.callBackType = EStsShutdown; iMsgQueue.SendBlocking(callBack); @@ -70,7 +71,12 @@ void CStsServerSession::DoRegisterMsgQueueL(const RMessage2& aMessage) { TInt result = iMsgQueue.Open(aMessage, 0); - + if (result == KErrNone) + { + TThreadId id = RThread().Id(); + TPckg idPckg(id); + TRAP(result,aMessage.Write(1, idPckg)); + } aMessage.Complete(result); } @@ -108,9 +114,19 @@ iSts.StopAlarm(context); } +void CStsServerSession::CleanUpObservers() + { + while (!iObserverMap.empty()) + { + //TODO: Add trace here + unsigned int context = iObserverMap.begin()->first; + iObserverMap.erase(context); + iSts.StopAlarm(context); + } + } + void CStsServerSession::PlayAlarmComplete(unsigned int aAlarmContext) { - //TODO: Trigger play complete callback to RSession TStsCallBack callBack = { EStsPlayAlarmComplete, iObserverMap[aAlarmContext], aAlarmContext