summaryrefslogtreecommitdiff
path: root/cpp/src/IceUtil/ConsoleUtil.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2017-03-31 19:12:01 +0200
committerJose <jose@zeroc.com>2017-03-31 19:12:01 +0200
commit51395c09ff11f3c21a86c26513d1e5e9274543f1 (patch)
treeeb8116bc3e9ea9d864a4ccc753b6ff3e90881379 /cpp/src/IceUtil/ConsoleUtil.cpp
parentFixes for ICE-7012 - fixed some leaks in IceSSL/tests (diff)
downloadice-51395c09ff11f3c21a86c26513d1e5e9274543f1.tar.bz2
ice-51395c09ff11f3c21a86c26513d1e5e9274543f1.tar.xz
ice-51395c09ff11f3c21a86c26513d1e5e9274543f1.zip
Lazzy initialize ConsoleUtil
That is require to be able to set the process string converter from application main. Otherwise the converter is created before the user has a chance to set the process string converter or change the Windows console CP
Diffstat (limited to 'cpp/src/IceUtil/ConsoleUtil.cpp')
-rw-r--r--cpp/src/IceUtil/ConsoleUtil.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/cpp/src/IceUtil/ConsoleUtil.cpp b/cpp/src/IceUtil/ConsoleUtil.cpp
index 08121a27fd8..427b1f5c90d 100644
--- a/cpp/src/IceUtil/ConsoleUtil.cpp
+++ b/cpp/src/IceUtil/ConsoleUtil.cpp
@@ -28,7 +28,6 @@ public:
Init()
{
consoleMutex = new IceUtil::Mutex;
- consoleUtil = ICE_MAKE_SHARED(ConsoleUtil);
}
~Init()
@@ -45,6 +44,11 @@ Init init;
const ConsoleUtilPtr&
IceUtilInternal::getConsoleUtil()
{
+ IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(consoleMutex);
+ if(consoleUtil == 0)
+ {
+ consoleUtil = ICE_MAKE_SHARED(ConsoleUtil);
+ }
return consoleUtil;
}