/// <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(); }