diff -r 6d6e6d203ea9 -r f6f649aee13e messagingfw/msgsrvnstore/server/src/MSVSESS.CPP --- a/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP Mon Mar 08 21:44:02 2010 +0000 +++ b/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP Sun Mar 14 13:11:44 2010 +0000 @@ -3112,6 +3112,16 @@ ****************************************/ void CMsvServerSession::SearchSortOnHeaderAndBodytMsgL(const RMessage2& aMessage) { + //For Simultaneously query + if(CMSvSearchSortCacheManager::Instance()->OutstandingSOSOperations() > 0) + { + if(CMSvSearchSortCacheManager::Instance()->iProgress != KMsvSearchSortOpCompleted) + { + User::Leave(KErrServerBusy); // One is SOS request is under proress. + } + } + CMSvSearchSortCacheManager::Instance()->AddOutstandingSOSOperation(); + //Header and body. TMsvOp operationId = aMessage.Int0(); @@ -3171,6 +3181,16 @@ void CMsvServerSession::SearchSortOnIndexEntryL(const RMessage2& aMessage) { + //For Simultaneously query + if(CMSvSearchSortCacheManager::Instance()->OutstandingSOSOperations() > 0) + { + if(CMSvSearchSortCacheManager::Instance()->iProgress != KMsvSearchSortOpCompleted) + { + User::Leave(KErrServerBusy); // One is SOS request is under proress. + } + } + CMSvSearchSortCacheManager::Instance()->AddOutstandingSOSOperation(); + //Search sort on index entry. // Recover the operation data TMsvOp operationId = aMessage.Int0(); @@ -3480,6 +3500,16 @@ void CMsvServerSession::GetResultForQueryIDL(const RMessage2& aMessage) { + //For Simultaneously query + if(CMSvSearchSortCacheManager::Instance()->OutstandingSOSOperations() > 0) + { + if(CMSvSearchSortCacheManager::Instance()->iProgress != KMsvSearchSortOpCompleted ) + { + User::Leave(KErrServerBusy); // One is SOS request is under proress. + } + } + CMSvSearchSortCacheManager::Instance()->AddOutstandingSOSOperation(); + TInt operationId = aMessage.Int0(); TInt queryID = aMessage.Int1();