private void TriggerFirstHeart(UniqueAddress from) { if (_state.ActiveReceivers.Contains(from) && !FailureDetector.IsMonitoring(from.Address)) { Log.Debug("Cluster Node [{0}] - Trigger extra expected heartbeat from [{1}]", _cluster.SelfAddress, from.Address); FailureDetector.Heartbeat(from.Address); } }
/// <summary> /// TBD /// </summary> /// <param name="from">TBD</param> /// <returns>TBD</returns> public ClusterHeartbeatSenderState HeartbeatRsp(UniqueAddress from) { if (ActiveReceivers.Contains(from)) { FailureDetector.Heartbeat(from.Address); if (OldReceiversNowUnreachable.Contains(from)) { //back from unreachable, ok to stop heartbeating to it if (!Ring.MyReceivers.Value.Contains(from)) { FailureDetector.Remove(from.Address); } return(Copy(oldReceiversNowUnreachable: OldReceiversNowUnreachable.Remove(from))); } return(this); } return(this); }