diff options
author | Bernard Normier <bernard@zeroc.com> | 2003-07-18 19:47:14 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2003-07-18 19:47:14 +0000 |
commit | 3c02842b6143c6ce9297feecd7c9497312c76da8 (patch) | |
tree | 478210bed985772e2957ee0a65b9cd3f5f390234 /cpp/src/IceUtil/StaticMutex.cpp | |
parent | use lazy initialization of communicator for each request (diff) | |
download | ice-3c02842b6143c6ce9297feecd7c9497312c76da8.tar.bz2 ice-3c02842b6143c6ce9297feecd7c9497312c76da8.tar.xz ice-3c02842b6143c6ce9297feecd7c9497312c76da8.zip |
Major Freeze update
Diffstat (limited to 'cpp/src/IceUtil/StaticMutex.cpp')
-rw-r--r-- | cpp/src/IceUtil/StaticMutex.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/cpp/src/IceUtil/StaticMutex.cpp b/cpp/src/IceUtil/StaticMutex.cpp index 091aa5035f4..3e326a8f173 100644 --- a/cpp/src/IceUtil/StaticMutex.cpp +++ b/cpp/src/IceUtil/StaticMutex.cpp @@ -50,8 +50,13 @@ Init::Init() Init::~Init() { - for_each(_criticalSectionList->begin(), _criticalSectionList->end(), - DeleteCriticalSection); + for(list<CRITICAL_SECTION*>::iterator p = _criticalSectionList->begin(); + p != _criticalSectionList->end(); ++p) + { + DeleteCriticalSection(*p); + delete *p; + } + delete _criticalSectionList; DeleteCriticalSection(&_criticalSection); } @@ -66,9 +71,10 @@ void IceUtil::StaticMutex::initialize() const EnterCriticalSection(&_criticalSection); if(!_mutexInitialized) { - InitializeCriticalSection(&_mutex); + _mutex = new CRITICAL_SECTION; + InitializeCriticalSection(_mutex); _mutexInitialized = true; - _criticalSectionList->push_back(&_mutex); + _criticalSectionList->push_back(_mutex); } LeaveCriticalSection(&_criticalSection); } |