added synchronized keyword to method that reads from server poll

This commit is contained in:
Krandelbord 2017-11-19 12:01:39 +01:00
parent 390c33e36e
commit 5c953d7d00

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);
} }
} }