diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-06-18 03:47:25 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-06-18 03:47:25 +0000 |
commit | ec5110852e445b4156a36b0fce5cc14c22fffa6a (patch) | |
tree | 1cd6717c22b95479c8de28b1bfcf7732895a5681 | |
parent | a25ffeb61ae9492f50ad2ee4e846d1913acea229 (diff) | |
download | ATCD-ec5110852e445b4156a36b0fce5cc14c22fffa6a.tar.gz |
ChangeLogTag:Thu Jun 17 22:41:17 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog-99c | 16 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp | 6 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.cpp | 27 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.h | 3 |
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... |