diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/inc/sd_roles.h --- a/commsfwsupport/commselements/serverden/inc/sd_roles.h Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/inc/sd_roles.h Wed Aug 18 10:59:59 2010 +0300 @@ -545,7 +545,19 @@ { private: enum { ELivingSession = 0x80000000 }; - + + NONSHARABLE_CLASS(CSubSessionCloseThrottle) : public CAsyncOneShot + { + public: + CSubSessionCloseThrottle(CCommonSessionProxy& aProxy); + void RunL(); + private: + CCommonSessionProxy& iProxy; + }; + + static const TInt KSubSessionThrottleSize = 15; + friend class CSubSessionCloseThrottle; + public: IMPORT_C ~CCommonSessionProxy(); @@ -576,10 +588,14 @@ IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer); private: + void DeleteSubSessionsWithThrottling(); + +private: CWorkerSession* iSession; //< The session which is represented by proxy instance CCommonPlayer& iPlayer; TInt iNumSubSessClosing; //< Number of subsessions in current thread to complete TDblQueLink iLink; + CSubSessionCloseThrottle iSubSessionCloseThrottle; }; /**