Example #1
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="subject">TBD</param>
        /// <returns>TBD</returns>
        public IActorRef Unwatch(IActorRef subject)
        {
            var a = (IInternalActorRef)subject;

            if (!a.Equals(Self) && WatchingContains(a))
            {
                a.SendSystemMessage(new Unwatch(a, _self));
                MaintainAddressTerminatedSubscription(() =>
                {
                    _state = _state.RemoveWatching(a);
                }, a);
            }
            (_state, _) = _state.RemoveTerminated(a);
            return(a);
        }