From 3f131d797502f29218845ed3def7d29073addeb4 Mon Sep 17 00:00:00 2001 From: Kyle Feuz Date: Fri, 6 Feb 2015 11:54:52 -0700 Subject: [PATCH] Check for dead clients while checking for available messages --- java/libraries/net/src/processing/net/Server.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/java/libraries/net/src/processing/net/Server.java b/java/libraries/net/src/processing/net/Server.java index 3d55b6442..8edc6cd9c 100644 --- a/java/libraries/net/src/processing/net/Server.java +++ b/java/libraries/net/src/processing/net/Server.java @@ -220,6 +220,16 @@ public class Server implements Runnable { for (int i = 0; i < clientCount; i++) { int which = (index + i) % clientCount; Client client = clients[which]; + //Check for valid client + if (!client.active()){ + removeIndex(which); //Remove dead client + i--; //Don't skip the next client + //If the client has data make sure lastAvailable + //doesn't end up skipping the next client + which--; + //fall through to allow data from dead clients + //to be retreived. + } if (client.available() > 0) { lastAvailable = which; return client;