예제 #1
0
        /// <summary>
        /// INTERNAL API
        ///
        /// If you override it, you must call it. But only ever once. See <see cref="Detach"/> for the only invocation
        /// </summary>
        /// <param name="actor">The actor who is unregistering</param>
        internal virtual void Unregister(ActorCell actor)
        {
            if (DebugDispatcher)
            {
                Actors.Value.Remove(this, (IInternalActorRef)actor.Self);
            }
            AddInhabitants(-1);
            var mailbox = actor.SwapMailbox(Mailboxes.DeadLetterMailbox);

            mailbox.BecomeClosed();
            mailbox.CleanUp();
        }