protected override void TellInternal(object message, IActorRef sender) { if (message is ISystemMessage) { SendSystemMessage(message as ISystemMessage); return; } if (State is Stopped || State is StoppedWithPath) { Provider.DeadLetters.Tell(message); } else { if (message == null) { throw new InvalidMessageException(); } var wrappedMessage = message; if (!(message is Status.Success || message is Status.Failure)) { wrappedMessage = new Status.Success(message); } if (!(Result.TrySetResult(wrappedMessage))) { Provider.DeadLetters.Tell(message); } } }