diff options
author | William R. Otte <wotte@dre.vanderbilt.edu> | 2010-06-29 18:00:28 +0000 |
---|---|---|
committer | William R. Otte <wotte@dre.vanderbilt.edu> | 2010-06-29 18:00:28 +0000 |
commit | c417470840f8354966d09d119e1662987d65984e (patch) | |
tree | 5122da579cb902aaeb2b9909e7ccf83fd748cdce | |
parent | b5c6b487c8699d664e13b3911e1fa85ae46ac2bd (diff) | |
download | ATCD-c417470840f8354966d09d119e1662987d65984e.tar.gz |
Tue Jun 29 17:54:23 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu>
* DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h:
* DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp:
* DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp:
Fix for a segmentation fault that would occur when plans
with similar UUIDs were deployed/torn down in sequence.
* DAnCE/NodeApplication/NodeApplication_Impl.cpp:
Temperorarily disable thread pool in the NodeApplication. This
is expected to be re-enabled in the next release.
5 files changed, 44 insertions, 15 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog index 585028ed9dc..04d19b9477c 100644 --- a/CIAO/ChangeLog +++ b/CIAO/ChangeLog @@ -1,3 +1,24 @@ +Tue Jun 29 17:54:23 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h: + * DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp: + * DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp: + + Fix for a segmentation fault that would occur when plans + with similar UUIDs were deployed/torn down in sequence. + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: + + Temperorarily disable thread pool in the NodeApplication. This + is expected to be re-enabled in the next release. + +Tue Jun 29 14:49:04 UTC 2010 William R. Otte <wotte@dre.vanderbilt.edu> + + * DAnCE/NodeApplication/NodeApplication_Impl.cpp: + * DAnCE/NodeManager/NodeManager_Impl.cpp: + + Moved the plugin manager cleanup to the node manager. + Tue Jun 29 14:37:39 UTC 2010 Marcel Smit <msmit@remedy.nl> * docs/OMG-CCM-Tutorial.pptx: diff --git a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp index 899aa19e7b4..bd7717dfb0f 100644 --- a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp +++ b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.cpp @@ -57,8 +57,8 @@ namespace DAnCE guard, this->container_mutex_, CORBA::NO_RESOURCES ()); - for (SERVER_INFOS::iterator i (this->server_infos_.begin ()); - !i.done (); ++i) + for (SERVER_INFOS::iterator i (this->server_infos_.begin ()); + i != this->server_infos_.end (); ++i) { DANCE_DEBUG (9, (LM_TRACE, DLINFO ACE_TEXT ("DAnCE_LocalityActivator_i::locality_manager_callback - ") @@ -135,8 +135,8 @@ namespace DAnCE guard, this->container_mutex_, CORBA::NO_RESOURCES ()); - for (SERVER_INFOS::ITERATOR j (this->server_infos_); - !j.done (); ++j) + for (SERVER_INFOS::iterator j (this->server_infos_.begin ()); + j != this->server_infos_.end (); ++j) { if ((*j)->uuid_ == server_UUID) { @@ -217,7 +217,7 @@ namespace DAnCE guard, this->container_mutex_, CORBA::NO_RESOURCES ()); - server_infos_.insert_tail (server); + server_infos_.insert (server); } DANCE_DEBUG (9, (LM_TRACE, DLINFO @@ -534,19 +534,25 @@ namespace DAnCE { DANCE_TRACE ("DAnCE_LocalityActivator_i::remove_locality_manager"); - Server_Info *info = 0; + Safe_Server_Info info; { ACE_GUARD_THROW_EX ( TAO_SYNCH_MUTEX, guard, this->container_mutex_, CORBA::NO_RESOURCES ()); - for (SERVER_INFOS::ITERATOR i (this->server_infos_); - !i.done (); ++i) + + SERVER_INFOS::iterator i; + for (i = this->server_infos_.begin (); + i != this->server_infos_.end (); + ++i) { - if ((*i)->ref_->_is_equivalent (server)) + if ((!i->null ()) && + (!CORBA::is_nil ((*i)->ref_)) && + (*i)->ref_->_is_equivalent (server)) { - info = (*i).get (); + info = *i; + this->server_infos_.erase (i); } } } diff --git a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h index 3117d684362..7bd9725fcc2 100644 --- a/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h +++ b/CIAO/DAnCE/LocalityManager/Handler/LocalityActivator_Impl.h @@ -21,6 +21,8 @@ #include "NodeApplication/NodeApplication_Export.h" +#include <set> + #if !defined (ACE_LACKS_PRAGMA_ONCE) #pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ @@ -132,7 +134,7 @@ namespace DAnCE }; // Presumably, there won't be too many component servers per node application - typedef ACE_Unbounded_Set_Ex <Safe_Server_Info, _server_info> SERVER_INFOS; + typedef std::set <Safe_Server_Info, _server_info> SERVER_INFOS; /** * @brief The exit handler class for the locality manager child process diff --git a/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp index e7f21b893c4..74f27a710c3 100644 --- a/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp +++ b/CIAO/DAnCE/LocalityManager/Handler/Locality_Manager_Handler_Impl.cpp @@ -130,17 +130,17 @@ namespace DAnCE ::CORBA::ULong, const ::CORBA::Any &instance_reference) { - LocalityManager_var lm_ref; + LocalityManager_ptr lm_ref; if (!(instance_reference >>= lm_ref) || - CORBA::is_nil (lm_ref.in ())) + CORBA::is_nil (lm_ref)) { DANCE_ERROR (1, (LM_ERROR, DLINFO ACE_TEXT ("Locality_Handler_i::remove_instance - "), ACE_TEXT ("Unable to extract valid LocalityManager ") ACE_TEXT ("reference from parameter\n"))); } - this->activator_->remove_locality_manager (lm_ref.in ()); + this->activator_->remove_locality_manager (lm_ref); } void diff --git a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp index d78fd1b2871..8b1de19ced5 100644 --- a/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp +++ b/CIAO/DAnCE/NodeApplication/NodeApplication_Impl.cpp @@ -55,7 +55,7 @@ NodeApplication_Impl::NodeApplication_Impl (CORBA::ORB_ptr orb, // Spawn thread pool // @Todo: We can probably move this up into the NodeManager and // share the thread pool among several node applications. - this->scheduler_.activate_scheduler (10); + this->scheduler_.activate_scheduler (0); } NodeApplication_Impl::~NodeApplication_Impl() |