in client/src/main/java/org/mvndaemon/mvnd/client/DaemonConnector.java [250:279]
private DaemonClientConnection connectToCanceledDaemon(
Collection<DaemonInfo> busyDaemons, DaemonCompatibilitySpec constraint) {
DaemonClientConnection connection = null;
List<DaemonInfo> canceledBusy =
busyDaemons.stream().filter(di -> di.getState() == Canceled).collect(Collectors.toList());
final List<DaemonInfo> compatibleCanceledDaemons = getCompatibleDaemons(canceledBusy, constraint);
LOGGER.debug(
"Found {} busy daemons, {} cancelled, {} compatibles",
busyDaemons.size(),
canceledBusy.size(),
compatibleCanceledDaemons.size());
if (!compatibleCanceledDaemons.isEmpty()) {
LOGGER.debug("Waiting for daemons with canceled builds to become available");
long start = System.currentTimeMillis();
long stop = start
+ parameters
.property(Environment.MVND_CANCEL_CONNECT_TIMEOUT)
.asDuration()
.toMillis();
while (connection == null && System.currentTimeMillis() < stop) {
try {
sleep(200);
connection = connectToIdleDaemon(registry.getIdle(), constraint);
} catch (InterruptedException e) {
throw new DaemonException.InterruptedException(e);
}
}
}
return connection;
}