summaryrefslogtreecommitdiff
path: root/TAO/tao/PI_Server
diff options
context:
space:
mode:
authorvzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-16 16:04:12 +0000
committervzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-16 16:04:12 +0000
commit7791e48a722ccd5deab3f1a0f05b13f7404a0758 (patch)
tree20a76676ad4db8ee1524e09fb14a88ca0929f1e3 /TAO/tao/PI_Server
parentc0a7107cfbaabc5663df730f0f7c355db1e48f2a (diff)
downloadATCD-7791e48a722ccd5deab3f1a0f05b13f7404a0758.tar.gz
Mon Nov 16 15:52:21 UTC 2009 Vladimir Zykov <vladimir.zykov@prismtech.com>
* bin/tao_orb_tests.lst: Bug 3755 marked as fixed. * tao/PI_Server/PI_Server_Loader.cpp: * tao/PI_Server/PI_Server_Loader.h: * tao/Messaging/Messaging_Loader.h: * tao/Messaging/Messaging_Loader.cpp: * tao/BiDir_GIOP/BiDirGIOP.cpp: * tao/BiDir_GIOP/BiDirGIOP.h: * tao/RTScheduling/RTScheduler_Loader.cpp: * tao/RTScheduling/RTScheduler_Loader.h: * tao/ZIOP/ZIOP.cpp: * tao/ZIOP/ZIOP.h: * tao/CSD_Framework/CSD_Framework_Loader.cpp: * tao/CSD_Framework/CSD_Framework_Loader.h: * tao/RTCORBA/RT_ORB_Loader.h: * tao/RTCORBA/RT_ORB_Loader.cpp: Fixed bug 3755. Now library initialization guard is moved to a loader which does the initialization. Since the loader is unique per gestalt then the initialization is executed once per gestalt and not once per process.
Diffstat (limited to 'TAO/tao/PI_Server')
-rw-r--r--TAO/tao/PI_Server/PI_Server_Loader.cpp7
-rw-r--r--TAO/tao/PI_Server/PI_Server_Loader.h4
2 files changed, 7 insertions, 4 deletions
diff --git a/TAO/tao/PI_Server/PI_Server_Loader.cpp b/TAO/tao/PI_Server/PI_Server_Loader.cpp
index d953483b5eb..fbbc70400ab 100644
--- a/TAO/tao/PI_Server/PI_Server_Loader.cpp
+++ b/TAO/tao/PI_Server/PI_Server_Loader.cpp
@@ -15,6 +15,7 @@ ACE_RCSID (PI_Server,
TAO_BEGIN_VERSIONED_NAMESPACE_DECL
TAO_PI_Server_Loader::TAO_PI_Server_Loader (void)
+ : initialized_ (false)
{
}
@@ -27,13 +28,11 @@ TAO_PI_Server_Loader::init (int, ACE_TCHAR* [])
{
ACE_TRACE ("TAO_PI_Server_Loader::init");
- static bool initialized = false;
-
// Only allow initialization once.
- if (initialized)
+ if (this->initialized_)
return 0;
- initialized = true;
+ this->initialized_ = true;
// Register the ORB initializer.
try
diff --git a/TAO/tao/PI_Server/PI_Server_Loader.h b/TAO/tao/PI_Server/PI_Server_Loader.h
index 81ffeb05250..58b691f7647 100644
--- a/TAO/tao/PI_Server/PI_Server_Loader.h
+++ b/TAO/tao/PI_Server/PI_Server_Loader.h
@@ -36,6 +36,10 @@ public:
/// Initialize the PI_Server loader hooks.
virtual int init (int argc, ACE_TCHAR* []);
+
+private:
+ /// Set to true after init is called.
+ bool initialized_;
};