diff options
Diffstat (limited to 'cpp/src/Ice/SliceChecksums.cpp')
-rw-r--r-- | cpp/src/Ice/SliceChecksums.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/cpp/src/Ice/SliceChecksums.cpp b/cpp/src/Ice/SliceChecksums.cpp index fe6a6c992c2..72117c4bed3 100644 --- a/cpp/src/Ice/SliceChecksums.cpp +++ b/cpp/src/Ice/SliceChecksums.cpp @@ -8,20 +8,26 @@ // ********************************************************************** #include <Ice/SliceChecksums.h> +#include <IceUtil/StaticMutex.h> using namespace std; using namespace Ice; -namespace Ice +static SliceChecksumDict _sliceChecksums; +static IceUtil::StaticMutex _mutex = ICE_STATIC_MUTEX_INITIALIZER; + +SliceChecksumDict +Ice::sliceChecksums() { -const SliceChecksumDict sliceChecksums; + IceUtil::StaticMutex::Lock lock(_mutex); + return _sliceChecksums; } IceInternal::SliceChecksumInit::SliceChecksumInit(const char* checksums[]) { - SliceChecksumDict& m = const_cast<SliceChecksumDict&>(sliceChecksums); + IceUtil::StaticMutex::Lock lock(_mutex); for(int i = 0; checksums[i] != 0; i += 2) { - m.insert(SliceChecksumDict::value_type(checksums[i], checksums[i + 1])); + _sliceChecksums.insert(SliceChecksumDict::value_type(checksums[i], checksums[i + 1])); } } |