From f68ad1ebb25927d2b6650091f3bc23ae6888a495 Mon Sep 17 00:00:00 2001 From: Phil Mesnier Date: Thu, 3 Mar 2016 16:55:46 -0600 Subject: Bring over recent fixes and enhancements to the FaultTolerant / LoadBalancing naming service extension from OCI's TAO release. Fixes deadlocks that could occur as a result of file access errors, such as the transient "bad file decriptor" (ebadf) error that seems to pop up fairly regularly when using NFS. Also optimized the file locking strategy to not always setting to MODIFY access state, which then required a file update on every access --- TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp') diff --git a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp index d68c41bbaef..18b25ceb638 100644 --- a/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp +++ b/TAO/orbsvcs/orbsvcs/PortableGroup/PG_Object_Group.cpp @@ -502,7 +502,7 @@ TAO::PG_Object_Group::increment_version (void) if (TAO_debug_level > 3) { ORBSVCS_DEBUG ((LM_DEBUG, - ACE_TEXT ("%T %n (%P|%t) - Setting IOGR version to %u\n"), + ACE_TEXT ("TAO (%P|%t) PG_Object_Group::increment_version now %u\n"), static_cast (this->tagged_component_.object_group_ref_version) )); } @@ -868,7 +868,7 @@ TAO::PG_Object_Group::initial_populate (void) PortableGroup::InitialNumberMembersValue initial_number_members = this->get_initial_number_members (); - if (((PortableGroup::InitialNumberMembersValue)this->members_.current_size ()) < initial_number_members) + if (this->members_.current_size () < initial_number_members) { this->create_members (initial_number_members); } @@ -880,11 +880,11 @@ TAO::PG_Object_Group::minimum_populate (void) { ACE_GUARD (TAO_SYNCH_MUTEX, guard, this->internals_); - if ( this->get_membership_style () == PortableGroup::MEMB_INF_CTRL) + if ( this->get_membership_style () == PortableGroup::MEMB_INF_CTRL ) { PortableGroup::MinimumNumberMembersValue minimum_number_members = this->get_minimum_number_members (); - if (((PortableGroup::InitialNumberMembersValue)members_.current_size ()) < minimum_number_members) + if (members_.current_size () < minimum_number_members) { this->create_members (minimum_number_members); } @@ -932,4 +932,3 @@ TAO::PG_Object_Group::clear_members_map (void) } TAO_END_VERSIONED_NAMESPACE_DECL - -- cgit v1.2.1