package net.lightbody.bmp.proxy.http;
import net.lightbody.bmp.proxy.util.Log;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArraySet;
public class HttpClientInterrupter {
private static final Log LOG = new Log();
private static Set<BrowserMobHttpClient> clients = new CopyOnWriteArraySet<BrowserMobHttpClient>();
static {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
for (BrowserMobHttpClient client : clients) {
try {
client.checkTimeout();
} catch (Exception e) {
LOG.severe("Unexpected problem while checking timeout on a client", e);
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// this is OK
}
}
}
}, "HttpClientInterrupter Thread");
thread.setDaemon(true);
thread.start();
}
public static void watch(BrowserMobHttpClient client) {
clients.add(client);
}
public static void release(BrowserMobHttpClient client) {
clients.remove(client);
}
}