summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/FaultTolerance
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2011-02-14 10:50:51 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2011-02-14 10:50:51 +0000
commit22ad9f743f56c2aaeda343f8ce6c0e2d40494e73 (patch)
tree6a1a1f8d91fe3167d491b90f3efa67ba00796161 /TAO/orbsvcs/orbsvcs/FaultTolerance
parent8dc21d43eef54b53dbcc4f7b519b47cee156b6f6 (diff)
downloadATCD-22ad9f743f56c2aaeda343f8ce6c0e2d40494e73.tar.gz
Mon Feb 14 10:44:30 UTC 2011 Johnny Willemsen <jwillemsen@remedy.nl>
* orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h: * orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp: * tao/Client_Strategy_Factory.h: * tao/Client_Strategy_Factory.cpp: * tao/Configurable_Refcount.h: * tao/Configurable_Refcount.inl: * tao/Configurable_Refcount.cpp: * tao/IORTable/Table_Adapter.h: * tao/IORTable/Table_Adapter.cpp: * tao/Messaging/AMH_Response_Handler.cpp: * tao/ORB_Core.h: * tao/ORB_Core.cpp: * tao/Object.h: * tao/Object.inl: * tao/Object.cpp: * tao/ObjectKey_Table.h: * tao/ObjectKey_Table.cpp: * tao/On_Demand_Fragmentation_Strategy.h: * tao/PortableServer/Non_Servant_Upcall.cpp: * tao/PortableServer/Object_Adapter.h: * tao/PortableServer/Object_Adapter.inl: * tao/PortableServer/Object_Adapter.cpp: * tao/PortableServer/Root_POA.h: * tao/PortableServer/Root_POA.inl: * tao/PortableServer/Root_POA.cpp: * tao/PortableServer/ServantRetentionStrategyRetain.cpp: * tao/PortableServer/Servant_Upcall.cpp: * tao/Profile.h: * tao/Profile.inl: * tao/Profile.cpp: * tao/Refcounted_ObjectKey.inl: * tao/Refcounted_ObjectKey.cpp: * tao/Resource_Factory.h: * tao/Resource_Factory.cpp: * tao/Server_Strategy_Factory.h: * tao/Server_Strategy_Factory.cpp: * tao/Stub.h: * tao/Stub.inl: * tao/Stub.cpp: * tao/Transport_Mux_Strategy.h: * tao/Valuetype/AbstractBase.h: * tao/Valuetype/AbstractBase.cpp: * tao/default_client.h: * tao/default_client.cpp: * tao/default_resource.h: * tao/default_resource.cpp: * tao/default_server.h: * tao/default_server.cpp: * tao/tao.mpc: * tao/ObjectKey_Table.inl: Reverted the changes to TAO/tao from the commit of last friday. The ImR example Combined_Service broke and I am not in the position to analyze the exact failure at this moment. Will reapply the changes asap when I have time to analyze this
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/FaultTolerance')
-rw-r--r--TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp17
-rw-r--r--TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h6
2 files changed, 16 insertions, 7 deletions
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp
index 16ada0ae26e..02dec8e7aaa 100644
--- a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp
+++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.cpp
@@ -19,12 +19,17 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL
TAO_FT_Service_Callbacks::TAO_FT_Service_Callbacks (TAO_ORB_Core *orb_core)
- : orb_core_ (orb_core)
+ : orb_core_ (orb_core),
+ profile_lock_ (0)
{
+ this->profile_lock_ =
+ this->orb_core_->client_factory ()->create_profile_lock ();
}
TAO_FT_Service_Callbacks::~TAO_FT_Service_Callbacks (void)
{
+ // Delete the memeory for the lock
+ delete this->profile_lock_;
}
CORBA::Boolean
@@ -198,7 +203,7 @@ TAO_FT_Service_Callbacks::is_permanent_forward_condition (const CORBA::Object_pt
sc.context_id = IOP::FT_GROUP_VERSION;
if (service_context.get_context (sc) == 0)
- return false;
+ return false; /* false */
IOP::TaggedComponent tc;
tc.tag = IOP::TAG_FT_GROUP;
@@ -208,9 +213,9 @@ TAO_FT_Service_Callbacks::is_permanent_forward_condition (const CORBA::Object_pt
if (stub->forward_profiles ())
{
// set lock, as forward_profiles might be deleted concurrently
- ACE_MT (ACE_GUARD_RETURN (TAO_SYNCH_MUTEX,
+ ACE_MT (ACE_GUARD_RETURN (ACE_Lock,
guard,
- stub->profile_lock (),
+ *stub->profile_lock (),
0));
// even now, the forward profiles might have been deleted in the meanwhile
@@ -229,9 +234,9 @@ TAO_FT_Service_Callbacks::is_permanent_forward_condition (const CORBA::Object_pt
if (tagged_components.get_component (tc) == 0)
// releasing lock
- return false;
+ return false; /* false */
- return true;
+ return true; /* true */
// releasing lock
}
diff --git a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h
index d2685042f83..de694bb723c 100644
--- a/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h
+++ b/TAO/orbsvcs/orbsvcs/FaultTolerance/FT_Service_Callbacks.h
@@ -50,7 +50,7 @@ public:
virtual ~TAO_FT_Service_Callbacks (void);
/// Select the profile from MProfile as the needs of the services
- /// may be. Return the profile in @a pfile
+ /// may be. Return the profile in <pfile>
virtual CORBA::Boolean select_profile (const TAO_MProfile &mprofile,
TAO_Profile *&pfile);
@@ -97,6 +97,10 @@ private:
private:
/// The ORB core in which we have been activated
TAO_ORB_Core *orb_core_;
+
+ /// Mutex to protect access to the profile that gets passed along
+ /// @@ Lock needs to be removed...
+ ACE_Lock* profile_lock_;
};
TAO_END_VERSIONED_NAMESPACE_DECL