summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-18 03:47:25 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-06-18 03:47:25 +0000
commitec5110852e445b4156a36b0fce5cc14c22fffa6a (patch)
tree1cd6717c22b95479c8de28b1bfcf7732895a5681
parenta25ffeb61ae9492f50ad2ee4e846d1913acea229 (diff)
downloadATCD-ec5110852e445b4156a36b0fce5cc14c22fffa6a.tar.gz
ChangeLogTag:Thu Jun 17 22:41:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-99c16
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp6
-rw-r--r--TAO/tao/ORB_Core.cpp27
-rw-r--r--TAO/tao/ORB_Core.h3
4 files changed, 40 insertions, 12 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index 630e040098e..6e356a632e9 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,3 +1,14 @@
+Thu Jun 17 22:41:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * tao/ORB_Core.h:
+ * tao/ORB_Core.cpp:
+ Fixed dead-lock during startup, it worked on NT thanks to the
+ recursive mutexes in that land.
+
+ * TAO_IDL/be/be_visitor_interface/collocated_ss.cpp:
+ Nanbor's changes and ours (Irfan's and mine) did not mix well,
+ fixed.
+
Thu Jun 17 22:44:04 1999 Kirthika Parameswaran <kirthika@cs.wustl.edu>
* examples/Simple/echo/Echo_i.{h,cpp}: Added throw specs.
@@ -18,6 +29,11 @@ Thu Jun 17 21:45:11 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* ChangeLog: Split the ChangeLog to make a ChangeLog-99a since we
were already up to 700k of ChangeLog entries for '99!
+Thu Jun 17 20:40:56 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * performance-tests/POA/Object_Creation_And_Registration/run_test.pl:
+ Fixed include path
+
Thu Jun 17 21:47:21 1999 Nanbor Wang <nanbor@cs.wustl.edu>
* be/be_visitor_interface/collocated_sh.cpp:
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp
index deb107546b8..4a24d8a40ab 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp
@@ -115,7 +115,8 @@ int be_visitor_interface_collocated_ss::visit_interface (be_interface *node)
<< "{" << be_idt_nl;
*os <<"TAO_Object_Adapter::Servant_Upcall servant_upcall ("
<< be_idt << be_idt_nl
- << "*this->_stubobj ()->servant_orb ()->orb_core ()->object_adapter ()"
+ << "*this->_stubobj ()->"
+ << "servant_orb_var ()->orb_core ()->object_adapter ()"
<< be_uidt_nl
<< ");" << be_uidt_nl
<< "servant_upcall.prepare_for_upcall (" << be_idt << be_idt_nl
@@ -158,7 +159,8 @@ int be_visitor_interface_collocated_ss::visit_interface (be_interface *node)
<< "{" << be_idt_nl;
*os <<"TAO_Object_Adapter::Servant_Upcall servant_upcall ("
<< be_idt << be_idt_nl
- << "*this->_stubobj ()->servant_orb ()->orb_core ()->object_adapter ()"
+ << "*this->_stubobj ()->"
+ << "servant_orb_var ()->orb_core ()->object_adapter ()"
<< be_uidt_nl
<< ");" << be_uidt_nl
<< "servant_upcall.prepare_for_upcall (" << be_idt << be_idt_nl
diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp
index 0d40870893b..303f3e69bb4 100644
--- a/TAO/tao/ORB_Core.cpp
+++ b/TAO/tao/ORB_Core.cpp
@@ -1196,7 +1196,7 @@ TAO_ORB_Core::create_and_set_root_poa (const char *adapter_name,
if (poa_manager == 0)
{
ACE_NEW_THROW_EX (poa_manager,
- TAO_POA_Manager (*this->object_adapter ()),
+ TAO_POA_Manager (*this->object_adapter_i ()),
CORBA::NO_MEMORY ());
ACE_CHECK;
}
@@ -1216,8 +1216,8 @@ TAO_ORB_Core::create_and_set_root_poa (const char *adapter_name,
*poa_manager,
*policies,
0,
- this->object_adapter ()->lock (),
- this->object_adapter ()->thread_lock (),
+ this->object_adapter_i ()->lock (),
+ this->object_adapter_i ()->thread_lock (),
*this,
ACE_TRY_ENV),
CORBA::NO_MEMORY ());
@@ -1237,18 +1237,25 @@ TAO_ORB_Core::object_adapter (void)
{
// Double checked locking
ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ace_mon, this->lock_, 0);
- if (this->object_adapter_ == 0)
- {
- ACE_NEW_RETURN (this->object_adapter_,
- TAO_Object_Adapter (this->server_factory ()->active_object_map_creation_parameters (),
- *this),
- 0);
- }
+ (void) this->object_adapter_i ();
}
return this->object_adapter_;
}
+TAO_Object_Adapter *
+TAO_ORB_Core::object_adapter_i (void)
+{
+ if (this->object_adapter_ == 0)
+ {
+ ACE_NEW_RETURN (this->object_adapter_,
+ TAO_Object_Adapter (this->server_factory ()->active_object_map_creation_parameters (),
+ *this),
+ 0);
+ }
+ return this->object_adapter_;
+}
+
int
TAO_ORB_Core::is_collocated (const TAO_MProfile& mprofile)
{
diff --git a/TAO/tao/ORB_Core.h b/TAO/tao/ORB_Core.h
index 6769df26246..0da8b188cc0 100644
--- a/TAO/tao/ORB_Core.h
+++ b/TAO/tao/ORB_Core.h
@@ -375,6 +375,9 @@ protected:
CORBA::Environment &TAO_IN_ENV);
// Initialize the root POA.
+ TAO_Object_Adapter *object_adapter_i (void);
+ // Get <Object Adapter>, assume the lock is held...
+
protected:
ACE_SYNCH_MUTEX lock_;
// Synchronize internal state...