public Task RemovePidAsync(ClusterIdentity clusterIdentity, PID pid, CancellationToken ct) { var activationTerminated = new ActivationTerminated { Pid = pid, ClusterIdentity = clusterIdentity, }; _cluster.MemberList.BroadcastEvent(activationTerminated); return(Task.CompletedTask); }
private void Invalidate(ClusterIdentity identity, PID activation, BitArray activeRemotes) { var message = new ActivationTerminated { ClusterIdentity = identity, Pid = activation }; var remotesToInvalidate = Cluster.MemberList.GetAllMembers() .Select(m => Cluster.MemberList.GetMetaMember(m.Id)) .Where(m => activeRemotes.Length > m.Index && activeRemotes[m.Index]) .Select(m => m.Member.Address); foreach (var address in remotesToInvalidate) { Cluster.System.Root.Send(PID.FromAddress(address, ActorName), message); } }