diff options
author | Phil Mesnier <mesnier_p@ociweb.com> | 2007-08-16 16:35:29 +0000 |
---|---|---|
committer | Phil Mesnier <mesnier_p@ociweb.com> | 2007-08-16 16:35:29 +0000 |
commit | 4ed4bbac2138e68f50803b1a890e4a03b8ee1fad (patch) | |
tree | 033568702aeb7b9e6a8d5d68d0234df3bad314e7 | |
parent | 032ab395520ec79f0d472841d7a67755e5837a31 (diff) | |
download | ATCD-4ed4bbac2138e68f50803b1a890e4a03b8ee1fad.tar.gz |
Thu Aug 16 15:28:45 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com>
-rw-r--r-- | ACE/ChangeLog | 16 | ||||
-rw-r--r-- | ACE/ace/Service_Config.cpp | 15 | ||||
-rw-r--r-- | ACE/ace/Service_Types.cpp | 2 |
3 files changed, 27 insertions, 6 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index ddf006c2767..7613360002c 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,5 +1,19 @@ +Thu Aug 16 15:28:45 UTC 2007 Phil Mesnier <mesnier_p@ociweb.com> + + * ace/Service_Config.cpp: + + Part of fix for bug 2995. Both the Service Config and Service + Gestalt have separate open counts, but multiple calls to open_i + on the Service Config were not propogated to Service Gestalt. + This led to a problem where closing a multiply opened Service + Config would result in a premature clean up of resources in the + Gestalt, triggering a crash later on. + + * ace/Service_Types.cpp: + Make debugging output more clear. + Thu Aug 16 00:04:21 UTC 2007 Abdullah Sowayan <abdullah.sowayan@lmco.com> - + * protocols/ace/HTBP/HTBP_Environment.cpp: * protocols/ace/TMCast/FaultDetector.hpp: Untabify. diff --git a/ACE/ace/Service_Config.cpp b/ACE/ace/Service_Config.cpp index c4d6d005f18..1fb104d97f4 100644 --- a/ACE/ace/Service_Config.cpp +++ b/ACE/ace/Service_Config.cpp @@ -47,8 +47,10 @@ ACE_Service_Config_Guard::ACE_Service_Config_Guard (ACE_Service_Gestalt * psg) { if (ACE::debug ()) ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<ctor>") - ACE_TEXT (" - repo=%@ superceded by repo=%@\n"), + ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<ctor=%@>") + ACE_TEXT (" - config=%@ repo=%@ superceded by repo=%@\n"), + this, + this->saved_, this->saved_->repo_, psg->repo_)); @@ -63,8 +65,9 @@ ACE_Service_Config_Guard::~ACE_Service_Config_Guard (void) if (ACE::debug ()) ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<dtor>") + ACE_TEXT ("ACE (%P|%t) Service_Config_Guard:<dtor=%@>") ACE_TEXT (" - new repo=%@\n"), + this, this->saved_->repo_)); } @@ -182,7 +185,11 @@ ACE_Service_Config::open_i (const ACE_TCHAR program_name[], // The base class open_i increments this and we are // forwarding to it, so we don't have to increment here. if (this->is_opened_ != 0) - return 0; + return ACE_Service_Gestalt::open_i (program_name, + logger_key, + ignore_static_svcs, + ignore_default_svc_conf_file, + ignore_debug_flag); // Check for things we need to do on a per-process basis and which // may not be safe, or wise to do an a per instance basis diff --git a/ACE/ace/Service_Types.cpp b/ACE/ace/Service_Types.cpp index 20665ea2c7d..0aa6fa02d3f 100644 --- a/ACE/ace/Service_Types.cpp +++ b/ACE/ace/Service_Types.cpp @@ -60,7 +60,7 @@ ACE_Service_Type_Impl::fini (void) const ACE_TRACE ("ACE_Service_Type_Impl::fini"); if (ACE::debug ()) ACE_DEBUG ((LM_DEBUG, - ACE_TEXT ("destroying %s, flags = %d\n"), + ACE_TEXT ("(%P|%t) ST::fini - destroying %s, flags = %d\n"), this->name_, this->flags_)); |