Merge pull request #668 from Krandelbord/master

added synchronized keyword to method that reads from server poll
This commit is contained in:
Ilkka Seppälä 2017-12-09 22:29:40 +02:00 committed by GitHub
commit d26f2620ec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -35,10 +35,10 @@ import java.util.List;
public class LoadBalancer { public class LoadBalancer {
private static List<Server> servers = new ArrayList<>(); private static List<Server> servers = new ArrayList<>();
private static int id;
private static int lastServedId; private static int lastServedId;
static { static {
int id = 0;
servers.add(new Server("localhost", 8081, ++id)); servers.add(new Server("localhost", 8081, ++id));
servers.add(new Server("localhost", 8080, ++id)); servers.add(new Server("localhost", 8080, ++id));
servers.add(new Server("localhost", 8082, ++id)); servers.add(new Server("localhost", 8082, ++id));
@ -67,14 +67,12 @@ public class LoadBalancer {
/** /**
* Handle request * Handle request
*/ */
public void serverRequest(Request request) { public synchronized void serverRequest(Request request) {
if (lastServedId >= servers.size()) { if (lastServedId >= servers.size()) {
lastServedId = 0; lastServedId = 0;
} }
Server server = servers.get(lastServedId++); Server server = servers.get(lastServedId++);
server.serve(request); server.serve(request);
} }
} }