private Desequenced Resequence(Desequenced desequenced) { if (desequenced.SequenceNr == _delivered + 1) { _delivered = desequenced.SequenceNr; desequenced.Target.Tell(desequenced.Message, desequenced.Sender); } else { _delayed.Add(desequenced.SequenceNr, desequenced); } var delivered = _delivered + 1; if (_delayed.TryGetValue(delivered, out Desequenced d)) { _delayed.Remove(delivered); return(d); } return(null); }
private Desequenced Resequence(Desequenced desequenced) { if (desequenced.SequenceNr == _delivered + 1) { _delivered = desequenced.SequenceNr; desequenced.Target.Tell(desequenced.Message, desequenced.Sender); } else { _delayed.Add(desequenced.SequenceNr, desequenced); } Desequenced d; var delivered = _delivered + 1; if (_delayed.TryGetValue(delivered, out d)) { _delayed.Remove(delivered); return d; } return null; }