package net.scapeemulator.game.net.update;
import java.util.ArrayDeque;
import java.util.Queue;
public final class UpdateService implements Runnable {
private final Queue<UpdateSession> pendingSessions = new ArrayDeque<>();
public void addPendingSession(UpdateSession session) {
synchronized (pendingSessions) {
pendingSessions.add(session);
pendingSessions.notifyAll();
}
}
@Override
public void run() {
for (;;) {
UpdateSession session;
synchronized (pendingSessions) {
while ((session = pendingSessions.poll()) == null) {
try {
pendingSessions.wait();
} catch (InterruptedException e) {
/* ignore */
}
}
}
session.processFileQueue();
}
}
}