Quellcode durchsuchen

Made the UDP disconnect events more timely by including
the same bump logic that the NIO kernel has.


git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8934 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

PSp..om vor 14 Jahren
Ursprung
Commit
2d0def329d
1 geänderte Dateien mit 10 neuen und 0 gelöschten Zeilen
  1. 10 0
      engine/src/networking/com/jme3/network/kernel/udp/UdpKernel.java

+ 10 - 0
engine/src/networking/com/jme3/network/kernel/udp/UdpKernel.java

@@ -169,6 +169,16 @@ public class UdpKernel extends AbstractKernel
         socketEndpoints.remove( p.getRemoteAddress() );
         socketEndpoints.remove( p.getRemoteAddress() );
 
 
         addEvent( EndpointEvent.createRemove( this, p ) );
         addEvent( EndpointEvent.createRemove( this, p ) );
+        
+        // If there are no pending messages then add one so that the
+        // kernel-user knows to wake up if it is only listening for
+        // envelopes.
+        if( !hasEnvelopes() ) {
+            // Note: this is not really a race condition.  At worst, our
+            // event has already been handled by now and it does no harm
+            // to check again.
+            addEnvelope( EVENTS_PENDING );
+        }
     }
     }
 
 
     protected void newData( DatagramPacket packet )
     protected void newData( DatagramPacket packet )