diff options
author | Jose <jose@zeroc.com> | 2011-03-25 21:37:13 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2011-03-25 21:37:13 +0100 |
commit | f3034527ec00efdf0dcf3eb6b19f7244ec0f1054 (patch) | |
tree | 56257aaef6caa99e367c97bdb472b133aa04fe8f /cpp/src/Freeze/SharedDbEnv.cpp | |
parent | VC100 Python fixes (diff) | |
download | ice-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.cpp | 16 |
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 } |