in resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceAsynchSimulator.java [91:134]
public void run() {
while (true) {
Request req;
synchronized (queue) {
if ( (queue.size() - waitingThreads <= 0) ) {
try {
waitingThreads++; queue.wait();
} catch (InterruptedException e) {
Thread.interrupted();
}
waitingThreads--;
}
req = (Request) queue.removeFirst();
}
Runnable runnable = new Runnable() {
private Request req;
public void run() {
IResponseImpl response;
try {
response = new IResponseImpl(req.getId(), dnsService.getRecords(req.getValue()));
} catch (TimeoutException e) {
response = new IResponseImpl(req.getId(), e);
}
req.getResponseQueue().insertResponse(response);
}
public Runnable setRequest(Request req) {
this.req = req;
return this;
}
}.setRequest(req);
if (multiThread) {
new Thread(runnable).start();
} else {
runnable.run();
}
}
}