diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-30 15:28:09 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-30 15:28:09 +0000 |
commit | e3f3dc774a8d55eb5ccb0f91945ccb011bc3ea0a (patch) | |
tree | 525215b3711eaaaa336354bd4e8ff0fb250057ff | |
parent | 4264e5dd5d4fa861f0470284690c9874a0448112 (diff) | |
download | ATCD-e3f3dc774a8d55eb5ccb0f91945ccb011bc3ea0a.tar.gz |
ChangeLogTag: Sat Aug 30 09:53:30 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog_ref | 1 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.cpp | 103 | ||||
-rw-r--r-- | TAO/tao/ORB_Core.i | 4 | ||||
-rw-r--r-- | TAO/tao/Objref_VarOut_T.cpp | 3 | ||||
-rw-r--r-- | TAO/tao/Thread_Lane_Resources.cpp | 189 |
5 files changed, 130 insertions, 170 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref index d1b614037d1..dde557aeb56 100644 --- a/TAO/ChangeLog_ref +++ b/TAO/ChangeLog_ref @@ -1,6 +1,7 @@ Sat Aug 30 09:53:30 2003 Jeff Parsons <j.parsons@vanderbilt.edu> * tao/ORB_Core.cpp: + * tao/ORB_Core.i: * tao/Objref_VarOut_T.cpp: * tao/Thread_Lane_Resources.cpp: diff --git a/TAO/tao/ORB_Core.cpp b/TAO/tao/ORB_Core.cpp index 17524d3b963..04282dbbb05 100644 --- a/TAO/tao/ORB_Core.cpp +++ b/TAO/tao/ORB_Core.cpp @@ -2338,22 +2338,6 @@ ACE_Allocator* TAO_ORB_Core::output_cdr_buffer_allocator (void) { return this->lane_resources ().output_cdr_buffer_allocator (); - -#if 0 - TAO_ORB_Core_TSS_Resources *tss = this->get_tss_resources (); - if (tss == 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("(%P|%t) %p\n"), - ACE_LIB_TEXT ("TAO_ORB_Core::input_cdr_buffer_allocator (); ") - ACE_LIB_TEXT ("no more TSS keys")), - 0); - - if (tss->output_cdr_buffer_allocator_ == 0) - tss->output_cdr_buffer_allocator_ = - this->resource_factory ()->output_cdr_buffer_allocator (); - - return tss->output_cdr_buffer_allocator_; -#endif /*if 0*/ } @@ -2361,21 +2345,6 @@ ACE_Allocator* TAO_ORB_Core::output_cdr_msgblock_allocator (void) { return this->lane_resources ().output_cdr_msgblock_allocator (); -#if 0 - TAO_ORB_Core_TSS_Resources *tss = this->get_tss_resources (); - if (tss == 0) - ACE_ERROR_RETURN ((LM_ERROR, - ACE_LIB_TEXT ("(%P|%t) %p\n"), - ACE_LIB_TEXT ("TAO_ORB_Core::output_cdr_msgblock_allocator (); ") - ACE_LIB_TEXT ("no more TSS keys")), - 0); - - if (tss->output_cdr_msgblock_allocator_ == 0) - tss->output_cdr_msgblock_allocator_ = - this->resource_factory ()->output_cdr_msgblock_allocator (); - - return tss->output_cdr_msgblock_allocator_; -#endif /*if 0*/ } @@ -2410,78 +2379,6 @@ TAO_ORB_Core::create_input_cdr_data_block (size_t size) lock_strategy); } -#if 0 -// @@todo: This will go off after sometime. We may no longer need -// this, since we could as well use the input_cdr* for use. - -ACE_Data_Block * -TAO_ORB_Core::data_block_for_message_block (size_t size) -{ - - ACE_Allocator *dblock_allocator; - ACE_Allocator *buffer_allocator; - - dblock_allocator = - this->message_block_dblock_allocator (); - buffer_allocator = - this->message_block_buffer_allocator (); - - ACE_Lock* lock_strategy = 0; - if (this->resource_factory ()->use_locked_data_blocks ()) - { - lock_strategy = &this->data_block_lock_; - } - - return this->create_data_block_i (size, - buffer_allocator, - dblock_allocator, - lock_strategy); -} - -ACE_Allocator* -TAO_ORB_Core::message_block_dblock_allocator (void) -{ - if (this->message_block_dblock_allocator_ == 0) - { - // Double checked locking - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); - if (this->message_block_dblock_allocator_ == 0) - this->message_block_dblock_allocator_ = - this->resource_factory ()->input_cdr_dblock_allocator (); - } - return this->message_block_dblock_allocator_; -} - -ACE_Allocator* -TAO_ORB_Core::message_block_buffer_allocator (void) -{ - if (this->message_block_buffer_allocator_ == 0) - { - // Double checked locking - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); - if (this->message_block_buffer_allocator_ == 0) - this->message_block_buffer_allocator_ = - this->resource_factory ()->input_cdr_buffer_allocator (); - } - return this->message_block_buffer_allocator_; -} - -ACE_Allocator* -TAO_ORB_Core::message_block_msgblock_allocator (void) -{ - if (this->message_block_msgblock_allocator_ == 0) - { - // Double checked locking - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); - if (this->message_block_msgblock_allocator_ == 0) - this->message_block_msgblock_allocator_ = - this->resource_factory ()->input_cdr_buffer_allocator (); - } - return this->message_block_msgblock_allocator_; -} - -#endif /*if 0*/ - ACE_Data_Block * TAO_ORB_Core::create_data_block_i (size_t size, ACE_Allocator *buffer_allocator, diff --git a/TAO/tao/ORB_Core.i b/TAO/tao/ORB_Core.i index 428ed636ff9..2df6b4b13be 100644 --- a/TAO/tao/ORB_Core.i +++ b/TAO/tao/ORB_Core.i @@ -221,7 +221,9 @@ TAO_ORB_Core::orb_params(void) } #define TAO_OC_RETRIEVE(member) \ - ((this->member##_ == 0) ? (this->member##_ = this->resource_factory ()->get_##member ()) : (this->member##_) ) +((this->member##_ == 0) \ + ? (this->member##_ = this->resource_factory ()->get_##member ()) \ + : (this->member##_)) ACE_INLINE TAO_ProtocolFactorySet * TAO_ORB_Core::protocol_factories (void) diff --git a/TAO/tao/Objref_VarOut_T.cpp b/TAO/tao/Objref_VarOut_T.cpp index 168215d4318..d38e596ce4a 100644 --- a/TAO/tao/Objref_VarOut_T.cpp +++ b/TAO/tao/Objref_VarOut_T.cpp @@ -9,8 +9,6 @@ #include "tao/Objref_VarOut_T.inl" #endif /* __ACE_INLINE__ */ - - ACE_RCSID (tao, Objref_VarOut_T, "$Id$") @@ -48,6 +46,7 @@ TAO::Objref_Traits<T>::tao_marshal (T * p, } // ================================================================= + template <typename T> TAO_Objref_Var_T<T>::TAO_Objref_Var_T (void) : ptr_ (TAO::Objref_Traits<T>::tao_nil ()) diff --git a/TAO/tao/Thread_Lane_Resources.cpp b/TAO/tao/Thread_Lane_Resources.cpp index a934c64286b..de3c44e31f9 100644 --- a/TAO/tao/Thread_Lane_Resources.cpp +++ b/TAO/tao/Thread_Lane_Resources.cpp @@ -2,7 +2,9 @@ #include "tao/Thread_Lane_Resources.h" -ACE_RCSID(tao, Thread_Lane_Resources, "$Id$") +ACE_RCSID (tao, + Thread_Lane_Resources, + "$Id$") #include "tao/ORB_Core.h" #include "tao/Acceptor_Registry.h" @@ -18,21 +20,23 @@ ACE_RCSID(tao, Thread_Lane_Resources, "$Id$") # include "tao/Thread_Lane_Resources.i" #endif /* ! __ACE_INLINE__ */ -TAO_Thread_Lane_Resources::TAO_Thread_Lane_Resources (TAO_ORB_Core &orb_core, - TAO_New_Leader_Generator *new_leader_generator) - : orb_core_ (orb_core) - , acceptor_registry_ (0) - , connector_registry_ (0) - , transport_cache_ (0) - , leader_follower_ (0) - , new_leader_generator_ (new_leader_generator) - , input_cdr_dblock_allocator_ (0) - , input_cdr_buffer_allocator_ (0) - , input_cdr_msgblock_allocator_ (0) - , transport_message_buffer_allocator_ (0) - , output_cdr_dblock_allocator_ (0) - , output_cdr_buffer_allocator_ (0) - , output_cdr_msgblock_allocator_ (0) +TAO_Thread_Lane_Resources::TAO_Thread_Lane_Resources ( + TAO_ORB_Core &orb_core, + TAO_New_Leader_Generator *new_leader_generator + ) + : orb_core_ (orb_core), + acceptor_registry_ (0), + connector_registry_ (0), + transport_cache_ (0), + leader_follower_ (0), + new_leader_generator_ (new_leader_generator), + input_cdr_dblock_allocator_ (0), + input_cdr_buffer_allocator_ (0), + input_cdr_msgblock_allocator_ (0), + transport_message_buffer_allocator_ (0), + output_cdr_dblock_allocator_ (0), + output_cdr_buffer_allocator_ (0), + output_cdr_msgblock_allocator_ (0) { // Create the transport cache. ACE_NEW (this->transport_cache_, @@ -61,7 +65,9 @@ int TAO_Thread_Lane_Resources::is_collocated (const TAO_MProfile& mprofile) { if (!this->has_acceptor_registry_been_created ()) - return 0; + { + return 0; + } return this->acceptor_registry ().is_collocated (mprofile); } @@ -78,6 +84,7 @@ TAO_Thread_Lane_Resources::acceptor_registry (void) ace_mon, this->lock_, *this->acceptor_registry_); + if (this->acceptor_registry_ == 0) { // @@ Not exception safe code @@ -112,26 +119,37 @@ TAO_Thread_Lane_Resources::connector_registry (ACE_ENV_SINGLE_ARG_DECL) this->orb_core_.resource_factory ()->get_connector_registry (); if (connector_registry == 0) - ACE_THROW_RETURN (CORBA::INITIALIZE ( - CORBA::SystemException::_tao_minor_code ( - TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE, - 0), - CORBA::COMPLETED_NO), - 0); + { + ACE_THROW_RETURN ( + CORBA::INITIALIZE ( + CORBA::SystemException::_tao_minor_code ( + TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE, + 0 + ), + CORBA::COMPLETED_NO + ), + 0 + ); + } if (connector_registry->open (&this->orb_core_) != 0) - ACE_THROW_RETURN (CORBA::INITIALIZE ( - CORBA::SystemException::_tao_minor_code ( - TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE, - 0), - CORBA::COMPLETED_NO), - 0); + { + ACE_THROW_RETURN ( + CORBA::INITIALIZE ( + CORBA::SystemException::_tao_minor_code ( + TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE, + 0 + ), + CORBA::COMPLETED_NO + ), + 0 + ); + } // Finally, everything is created and opened successfully: // now we can assign to the member. Otherwise, the // assignment would be premature. - this->connector_registry_ = - connector_registry; + this->connector_registry_ = connector_registry; } } @@ -145,7 +163,11 @@ TAO_Thread_Lane_Resources::leader_follower (void) // Double check. if (this->leader_follower_ == 0) { - ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, *this->leader_follower_); + ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, + ace_mon, + this->lock_, + *this->leader_follower_); + if (this->leader_follower_ == 0) { // Create a new Leader Follower object. @@ -167,9 +189,12 @@ TAO_Thread_Lane_Resources::input_cdr_dblock_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->input_cdr_dblock_allocator_ == 0) - this->input_cdr_dblock_allocator_ = - this->resource_factory ()->input_cdr_dblock_allocator (); + { + this->input_cdr_dblock_allocator_ = + this->resource_factory ()->input_cdr_dblock_allocator (); + } } return this->input_cdr_dblock_allocator_; @@ -183,9 +208,12 @@ TAO_Thread_Lane_Resources::input_cdr_buffer_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->input_cdr_buffer_allocator_ == 0) - this->input_cdr_buffer_allocator_ = - this->resource_factory ()->input_cdr_buffer_allocator (); + { + this->input_cdr_buffer_allocator_ = + this->resource_factory ()->input_cdr_buffer_allocator (); + } } return this->input_cdr_buffer_allocator_; @@ -199,9 +227,12 @@ TAO_Thread_Lane_Resources::input_cdr_msgblock_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->input_cdr_msgblock_allocator_ == 0) - this->input_cdr_msgblock_allocator_ = - this->resource_factory ()->input_cdr_msgblock_allocator (); + { + this->input_cdr_msgblock_allocator_ = + this->resource_factory ()->input_cdr_msgblock_allocator (); + } } return this->input_cdr_msgblock_allocator_; @@ -214,9 +245,12 @@ TAO_Thread_Lane_Resources::transport_message_buffer_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->transport_message_buffer_allocator_ == 0) - this->transport_message_buffer_allocator_ = - this->resource_factory ()->input_cdr_dblock_allocator (); + { + this->transport_message_buffer_allocator_ = + this->resource_factory ()->input_cdr_dblock_allocator (); + } } return this->transport_message_buffer_allocator_; @@ -230,9 +264,12 @@ TAO_Thread_Lane_Resources::output_cdr_dblock_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->output_cdr_dblock_allocator_ == 0) - this->output_cdr_dblock_allocator_ = - this->resource_factory ()->output_cdr_dblock_allocator (); + { + this->output_cdr_dblock_allocator_ = + this->resource_factory ()->output_cdr_dblock_allocator (); + } } return this->output_cdr_dblock_allocator_; @@ -246,9 +283,12 @@ TAO_Thread_Lane_Resources::output_cdr_buffer_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->output_cdr_buffer_allocator_ == 0) - this->output_cdr_buffer_allocator_ = - this->resource_factory ()->output_cdr_buffer_allocator (); + { + this->output_cdr_buffer_allocator_ = + this->resource_factory ()->output_cdr_buffer_allocator (); + } } return this->output_cdr_buffer_allocator_; @@ -262,9 +302,12 @@ TAO_Thread_Lane_Resources::output_cdr_msgblock_allocator (void) { // Double checked locking ACE_GUARD_RETURN (TAO_SYNCH_MUTEX, ace_mon, this->lock_, 0); + if (this->output_cdr_msgblock_allocator_ == 0) - this->output_cdr_msgblock_allocator_ = - this->resource_factory ()->output_cdr_msgblock_allocator (); + { + this->output_cdr_msgblock_allocator_ = + this->resource_factory ()->output_cdr_msgblock_allocator (); + } } return this->output_cdr_msgblock_allocator_; @@ -275,15 +318,13 @@ TAO_Thread_Lane_Resources::open_acceptor_registry (int ignore_address ACE_ENV_ARG_DECL) { /// Access the acceptor registry. - TAO_Acceptor_Registry &ar = - this->acceptor_registry (); + TAO_Acceptor_Registry &ar = this->acceptor_registry (); // Open it. - int result = - ar.open (&this->orb_core_, - this->leader_follower ().reactor (), - ignore_address - ACE_ENV_ARG_PARAMETER); + int result = ar.open (&this->orb_core_, + this->leader_follower ().reactor (), + ignore_address + ACE_ENV_ARG_PARAMETER); ACE_CHECK_RETURN (-1); return result; @@ -326,6 +367,7 @@ TAO_Thread_Lane_Resources::finalize (void) // Go through the handler set, closing the connections and removing // the references. TAO_Connection_Handler **handler = 0; + for (TAO_Connection_Handler_Set::iterator iter (handlers); iter.next (handler); iter.advance ()) @@ -344,39 +386,59 @@ TAO_Thread_Lane_Resources::finalize (void) // lest some of the contents in the abve, say reactor or acceptor // may use memory from the pool.. if (this->input_cdr_dblock_allocator_ != 0) - this->input_cdr_dblock_allocator_->remove (); + { + this->input_cdr_dblock_allocator_->remove (); + } + delete this->input_cdr_dblock_allocator_; if (this->input_cdr_buffer_allocator_ != 0) - this->input_cdr_buffer_allocator_->remove (); + { + this->input_cdr_buffer_allocator_->remove (); + } + delete this->input_cdr_buffer_allocator_; if (this->input_cdr_msgblock_allocator_ != 0) - this->input_cdr_msgblock_allocator_->remove (); + { + this->input_cdr_msgblock_allocator_->remove (); + } + delete this->input_cdr_msgblock_allocator_; if (this->transport_message_buffer_allocator_ != 0) - this->transport_message_buffer_allocator_->remove (); + { + this->transport_message_buffer_allocator_->remove (); + } + delete this->transport_message_buffer_allocator_; if (this->output_cdr_dblock_allocator_ != 0) - this->output_cdr_dblock_allocator_->remove (); + { + this->output_cdr_dblock_allocator_->remove (); + } + delete this->output_cdr_dblock_allocator_; if (this->output_cdr_buffer_allocator_ != 0) - this->output_cdr_buffer_allocator_->remove (); + { + this->output_cdr_buffer_allocator_->remove (); + } + delete this->output_cdr_buffer_allocator_; if (this->output_cdr_msgblock_allocator_ != 0) - this->output_cdr_msgblock_allocator_->remove (); + { + this->output_cdr_msgblock_allocator_->remove (); + } + delete this->output_cdr_msgblock_allocator_; } void TAO_Thread_Lane_Resources::shutdown_reactor (void) { - TAO_Leader_Follower &leader_follower = - this->leader_follower (); + TAO_Leader_Follower &leader_follower = this->leader_follower (); ACE_GUARD (TAO_SYNCH_MUTEX, ace_mon, @@ -385,8 +447,7 @@ TAO_Thread_Lane_Resources::shutdown_reactor (void) // Wakeup all the threads waiting blocked in the event loop, this // does not guarantee that they will all go away, but reduces the // load on the POA.... - ACE_Reactor *reactor = - leader_follower.reactor (); + ACE_Reactor *reactor = leader_follower.reactor (); reactor->wakeup_all_threads (); |