/// <summary> /// TBD /// </summary> /// <param name="subject">TBD</param> /// <returns>TBD</returns> public IActorRef Watch(IActorRef subject) { var a = (IInternalActorRef)subject; if (!a.Equals(Self) && !WatchingContains(a)) { MaintainAddressTerminatedSubscription(() => { a.SendSystemMessage(new Watch(a, _self)); // ➡➡➡ NEVER SEND THE SAME SYSTEM MESSAGE OBJECT TO TWO ACTORS _state = _state.AddWatching(a, Option <object> .None); }, a); } return(a); }