summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/SliceChecksums.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2004-07-17 00:29:21 +0000
committerMark Spruiell <mes@zeroc.com>2004-07-17 00:29:21 +0000
commit6b27b852c66b2a66c8ef87b3214a0eda0e4d9cb5 (patch)
tree5df49096e9f9e845df8e06191cc66b84b307bf6c /cpp/src/Ice/SliceChecksums.cpp
parentrestoring some properties; adding some missing ones (diff)
downloadice-6b27b852c66b2a66c8ef87b3214a0eda0e4d9cb5.tar.bz2
ice-6b27b852c66b2a66c8ef87b3214a0eda0e4d9cb5.tar.xz
ice-6b27b852c66b2a66c8ef87b3214a0eda0e4d9cb5.zip
thread-safety changes for checksums
Diffstat (limited to 'cpp/src/Ice/SliceChecksums.cpp')
-rw-r--r--cpp/src/Ice/SliceChecksums.cpp14
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]));
}
}