summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-02-21 17:27:26 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-02-21 17:27:26 +0000
commit2388be1183e98be73274ad4cc845fb7adeb52334 (patch)
tree3ef80e524d2cceda94647d3112bdd70e62e5e9e5
parenta62f2cf47259229b1c47ddd2633412d690cd799d (diff)
downloadATCD-2388be1183e98be73274ad4cc845fb7adeb52334.tar.gz
ChangeLogTag:Wed Feb 21 08:38:05 2001 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a14
-rw-r--r--TAO/tao/RT_ORBInitializer.cpp36
2 files changed, 35 insertions, 15 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a
index c6b47a10cfc..1aa7d8f9415 100644
--- a/TAO/ChangeLogs/ChangeLog-02a
+++ b/TAO/ChangeLogs/ChangeLog-02a
@@ -1,8 +1,16 @@
+Wed Feb 21 08:38:05 2001 Carlos O'Ryan <coryan@uci.edu>
+
+ * tao/RT_ORBInitializer.cpp:
+ Add RT_ORB_Loader to the service repository, otherwise
+ resolve_initial_references("RT_ORB") fails for static builds.
+ Don't add a static service twice, otherwise the old copy is
+ destroyed and sometimes the ORB caches it.
+
Wed Feb 21 10:50:46 2001 Balachandran Natarajan <bala@cs.wustl.edu>
- * docs/Options.html: Changed the documentation for
- -ORBConnectionCachingStrategy and -ORBPurgePercentage
- options.
+ * docs/Options.html: Changed the documentation for
+ -ORBConnectionCachingStrategy and -ORBPurgePercentage
+ options.
Wed Feb 21 07:27:58 2001 Carlos O'Ryan <coryan@uci.edu>
diff --git a/TAO/tao/RT_ORBInitializer.cpp b/TAO/tao/RT_ORBInitializer.cpp
index eaabdafabf1..e27cedbbe9b 100644
--- a/TAO/tao/RT_ORBInitializer.cpp
+++ b/TAO/tao/RT_ORBInitializer.cpp
@@ -17,22 +17,23 @@ ACE_RCSID (TAO,
#include "tao/Priority_Mapping_Manager.h"
#include "tao/Exception.h"
#include "tao/ORB_Core.h"
+#include "tao/RT_ORB_Loader.h"
#include "ace/Service_Repository.h"
#include "ace/Svc_Conf.h"
-void
-TAO_RT_ORBInitializer::pre_init (
- PortableInterceptor::ORBInitInfo_ptr info
- TAO_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException))
+static void
+add_static_service (const ACE_Static_Svc_Descriptor &desc)
{
- TAO_ENV_ARG_DEFN;
-
- // Just a convenient way to say the same thing.
- const ACE_Static_Svc_Descriptor &desc =
- ace_svc_desc_TAO_RT_Protocols_Hooks;
-
+ const ACE_Service_Type *service_type;
+ if (ACE_Service_Repository::instance ()->find (desc.name_,
+ &service_type,
+ 0) >= 0)
+ {
+ // The service is already there, just return
+ return;
+ }
+
ACE_Service_Object_Exterminator gobbler;
void *sym = (*desc.alloc_)(&gobbler);
@@ -44,7 +45,6 @@ TAO_RT_ORBInitializer::pre_init (
gobbler);
// @@ Raise exception
- ACE_Service_Type *service_type;
ACE_NEW (service_type,
ACE_Service_Type (desc.name_,
service_type_impl,
@@ -52,6 +52,18 @@ TAO_RT_ORBInitializer::pre_init (
desc.active_));
// @@ Error checking
(void) ACE_Service_Repository::instance ()->insert (service_type);
+}
+
+void
+TAO_RT_ORBInitializer::pre_init (
+ PortableInterceptor::ORBInitInfo_ptr info
+ TAO_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ TAO_ENV_ARG_DEFN;
+
+ add_static_service (ace_svc_desc_TAO_RT_Protocols_Hooks);
+ add_static_service (ace_svc_desc_TAO_RT_ORB_Loader);
// Sets the name of the Protocol_Hooks to be the RT_Protocols_Hooks.
TAO_ORB_Core::set_protocols_hooks ("RT_Protocols_Hooks");