/// <summary> /// TBD /// </summary> /// <param name="actor">TBD</param> 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(); } }); }