protected void UnwatchWatchedActors(ActorBase actor)
{
var watching = _state
.GetWatching()
.ToList();
if (!watching.Any()) return;
MaintainAddressTerminatedSubscription(() =>
{
try
{
// ➡➡➡ NEVER SEND THE SAME SYSTEM MESSAGE OBJECT TO TWO ACTORS
foreach (var watchee in watching.OfType<IInternalActorRef>())
watchee.SendSystemMessage(new Unwatch(watchee, _self));
}
finally
{
_state = _state.ClearWatching();
_state = _state.ClearTerminated();
}
});
}