summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/SharedDbEnv.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2011-03-25 21:37:13 +0100
committerJose <jose@zeroc.com>2011-03-25 21:37:13 +0100
commitf3034527ec00efdf0dcf3eb6b19f7244ec0f1054 (patch)
tree56257aaef6caa99e367c97bdb472b133aa04fe8f /cpp/src/Freeze/SharedDbEnv.cpp
parentVC100 Python fixes (diff)
downloadice-f3034527ec00efdf0dcf3eb6b19f7244ec0f1054.tar.bz2
ice-f3034527ec00efdf0dcf3eb6b19f7244ec0f1054.tar.xz
ice-f3034527ec00efdf0dcf3eb6b19f7244ec0f1054.zip
4829 - TlsFree / pthread_key_delete missing from ~SharedDbEnv
Diffstat (limited to 'cpp/src/Freeze/SharedDbEnv.cpp')
-rw-r--r--cpp/src/Freeze/SharedDbEnv.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/src/Freeze/SharedDbEnv.cpp b/cpp/src/Freeze/SharedDbEnv.cpp
index bd3d8ca1afc..cfbfb409b3c 100644
--- a/cpp/src/Freeze/SharedDbEnv.cpp
+++ b/cpp/src/Freeze/SharedDbEnv.cpp
@@ -17,6 +17,7 @@
#include <IceUtil/MutexPtrLock.h>
#include <IceUtil/MutexPtrTryLock.h>
+#include <IceUtil/StringUtil.h>
#include <IceUtil/IceUtil.h>
#include <Ice/StringConverter.h>
@@ -185,6 +186,21 @@ Freeze::SharedDbEnv::~SharedDbEnv()
Error out(_communicator->getLogger());
out << "Freeze DbEnv close error: unknown exception";
}
+
+#ifdef _WIN32
+ if(!TlsFree(_tsdKey))
+ {
+ Error out(_communicator->getLogger());
+ out << "Freeze DbEnv close error:" << IceUtilInternal::lastErrorToString();
+ }
+#else
+ int err = pthread_key_delete(_tsdKey);
+ if(err != 0)
+ {
+ Error out(_communicator->getLogger());
+ out << "Freeze DbEnv close error:" << IceUtilInternal::errorToString(err);
+ }
+#endif
}