diff options
Diffstat (limited to 'cpp/src/IceUtil/Exception.cpp')
-rw-r--r-- | cpp/src/IceUtil/Exception.cpp | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/cpp/src/IceUtil/Exception.cpp b/cpp/src/IceUtil/Exception.cpp index 6c4cb6624ce..3ada15e03d7 100644 --- a/cpp/src/IceUtil/Exception.cpp +++ b/cpp/src/IceUtil/Exception.cpp @@ -8,7 +8,8 @@ // ********************************************************************** #include <IceUtil/Exception.h> -#include <IceUtil/StaticMutex.h> +#include <IceUtil/MutexPtrLock.h> +#include <IceUtil/Mutex.h> #include <IceUtil/StringUtil.h> #include <ostream> #include <cstdlib> @@ -20,6 +21,31 @@ using namespace std; +namespace +{ + +IceUtil::Mutex* globalMutex = 0; + +class Init +{ +public: + + Init() + { + globalMutex = new IceUtil::Mutex; + } + + ~Init() + { + delete globalMutex; + globalMutex = 0; + } +}; + +Init init; + +} + namespace IceUtil { @@ -198,7 +224,7 @@ IceUtil::Exception::what() const throw() { try { - StaticMutex::Lock lock(globalMutex); + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(globalMutex); { if(_str.empty()) { @@ -374,4 +400,3 @@ IceUtil::SyscallException::error() const { return _error; } - |