diff options
author | Michi Henning <michi@zeroc.com> | 2003-10-20 23:18:23 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2003-10-20 23:18:23 +0000 |
commit | 8941640745d51e543fadc0524368d5f861691152 (patch) | |
tree | 384020f2b665d7f1a1c20b5ea435e0bf74faf476 /cpp/src/IceUtil/StaticMutex.cpp | |
parent | merging changes from garbage collector (diff) | |
download | ice-8941640745d51e543fadc0524368d5f861691152.tar.bz2 ice-8941640745d51e543fadc0524368d5f861691152.tar.xz ice-8941640745d51e543fadc0524368d5f861691152.zip |
merging changes for garbage collector
Diffstat (limited to 'cpp/src/IceUtil/StaticMutex.cpp')
-rw-r--r-- | cpp/src/IceUtil/StaticMutex.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/IceUtil/StaticMutex.cpp b/cpp/src/IceUtil/StaticMutex.cpp index 33e764e20b6..8fef1f9e3b5 100644 --- a/cpp/src/IceUtil/StaticMutex.cpp +++ b/cpp/src/IceUtil/StaticMutex.cpp @@ -31,9 +31,11 @@ typedef list<HANDLE> MutexList; static MutexList* _mutexList; +// // Although apparently not documented by Microsoft, static objects are // initialized before DllMain/DLL_PROCESS_ATTACH and finalized after // DllMain/DLL_PROCESS_DETACH ... that's why we use a static object. +// namespace IceUtil { @@ -48,7 +50,6 @@ public: static Init _init; - Init::Init() { InitializeCriticalSection(&_criticalSection); @@ -74,10 +75,12 @@ Init::~Init() } } +// // For full thread-safety, we assume that _mutexInitialized cannot be seen as true // before CRITICAL_SECTION has been updated. This is true on x86. Does IA64 // provide the same memory ordering guarantees? // + void IceUtil::StaticMutex::initialize() const { EnterCriticalSection(&_criticalSection); @@ -104,4 +107,3 @@ void IceUtil::StaticMutex::initialize() const #endif IceUtil::StaticMutex IceUtil::globalMutex = ICE_STATIC_MUTEX_INITIALIZER; - |