@@ -672,26 +672,7 @@ private void UpdateLogic()
672672
673673 while ( _socket . IsRunning )
674674 {
675- #if DEBUG
676- if ( SimulateLatency )
677- {
678- var time = DateTime . UtcNow ;
679- lock ( _pingSimulationList )
680- {
681- for ( int i = 0 ; i < _pingSimulationList . Count ; i ++ )
682- {
683- var incomingData = _pingSimulationList [ i ] ;
684- if ( incomingData . TimeWhenGet <= time )
685- {
686- DataReceived ( incomingData . Data , incomingData . Data . Length , incomingData . EndPoint ) ;
687- _pingSimulationList . RemoveAt ( i ) ;
688- i -- ;
689- }
690- }
691- }
692- }
693- #endif
694-
675+ ProcessDelayedPackets ( ) ;
695676 int elapsed = ( int ) stopwatch . ElapsedMilliseconds ;
696677 elapsed = elapsed <= 0 ? 1 : elapsed ;
697678 stopwatch . Reset ( ) ;
@@ -725,6 +706,30 @@ private void UpdateLogic()
725706 stopwatch . Stop ( ) ;
726707 }
727708
709+ [ Conditional ( "DEBUG" ) ]
710+ private void ProcessDelayedPackets ( )
711+ {
712+ #if DEBUG
713+ if ( SimulateLatency )
714+ {
715+ var time = DateTime . UtcNow ;
716+ lock ( _pingSimulationList )
717+ {
718+ for ( int i = 0 ; i < _pingSimulationList . Count ; i ++ )
719+ {
720+ var incomingData = _pingSimulationList [ i ] ;
721+ if ( incomingData . TimeWhenGet <= time )
722+ {
723+ DataReceived ( incomingData . Data , incomingData . Data . Length , incomingData . EndPoint ) ;
724+ _pingSimulationList . RemoveAt ( i ) ;
725+ i -- ;
726+ }
727+ }
728+ }
729+ }
730+ #endif
731+ }
732+
728733 private void ProcessNtpRequests ( int elapsedMilliseconds )
729734 {
730735 List < IPEndPoint > requestsToRemove = null ;
@@ -756,6 +761,7 @@ public void ManualUpdate(int elapsedMilliseconds)
756761 {
757762 if ( ! _manualMode )
758763 return ;
764+
759765 for ( var netPeer = _headPeer ; netPeer != null ; netPeer = netPeer . NextPeer )
760766 {
761767 if ( netPeer . ConnectionState == ConnectionState . Disconnected && netPeer . TimeSinceLastPacket > DisconnectTimeout )
@@ -776,8 +782,11 @@ public void ManualUpdate(int elapsedMilliseconds)
776782 /// </summary>
777783 public void ManualReceive ( )
778784 {
779- if ( _manualMode )
780- _socket . ManualReceive ( ) ;
785+ if ( ! _manualMode )
786+ return ;
787+
788+ _socket . ManualReceive ( ) ;
789+ ProcessDelayedPackets ( ) ;
781790 }
782791
783792 internal void OnMessageReceived ( byte [ ] data , int length , SocketError errorCode , IPEndPoint remoteEndPoint )
0 commit comments