diff -r 28ae839b4c09 -r fe71b07a6401 messagingfw/msgsrvnstore/server/src/MSVSESS.CPP --- a/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP Tue Feb 02 10:12:21 2010 +0200 +++ b/messagingfw/msgsrvnstore/server/src/MSVSESS.CPP Fri Feb 19 23:18:09 2010 +0200 @@ -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();