summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp')
-rw-r--r--TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
index ae18770d2ce..9184ec2a78e 100644
--- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
+++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
@@ -631,7 +631,7 @@ ReplicationManager_i::process_proc_failure (
{
ids[index++] = (*it).c_str ();
}
- // for now just take the first entry and send it
+
send_failure_notice (host.c_str (),
ids);
}
@@ -654,6 +654,21 @@ ReplicationManager_i::process_proc_failure (
"Data structure invariant broken.\n",
host.c_str()));
}
+
+ {
+ // a failed process means that the state synchronization
+ // agent is no longer reachable either.
+ ACE_Guard <ACE_Thread_Mutex> guard (state_sync_agent_list_mutex_);
+
+ // remove state synchronization agent reference
+ if (state_synchronization_agent_map_.unbind (process_id) == 0)
+ {
+ ACE_DEBUG ((LM_TRACE,
+ "RM: process_proc_failure () : "
+ "removed state sync agent from list.\n"));
+ }
+ }
+
}
else
{