use of org.gradle.internal.concurrent.ManagedExecutor in project gradle by gradle.
the class DefaultTaskPlanExecutor method process.
@Override
public void process(TaskExecutionPlan taskExecutionPlan, Action<? super TaskInternal> taskWorker) {
ManagedExecutor executor = executorFactory.create("Task worker for '" + taskExecutionPlan.getDisplayName() + "'");
try {
WorkerLease parentWorkerLease = workerLeaseService.getCurrentWorkerLease();
startAdditionalWorkers(taskExecutionPlan, taskWorker, executor, parentWorkerLease);
taskWorker(taskExecutionPlan, taskWorker, parentWorkerLease).run();
taskExecutionPlan.awaitCompletion();
} finally {
executor.stop();
}
}
use of org.gradle.internal.concurrent.ManagedExecutor in project gradle by gradle.
the class TcpIncomingConnector method accept.
public ConnectionAcceptor accept(Action<ConnectCompletion> action, boolean allowRemote) {
final ServerSocketChannel serverSocket;
int localPort;
try {
serverSocket = ServerSocketChannel.open();
serverSocket.socket().bind(new InetSocketAddress(addressFactory.getLocalBindingAddress(), 0));
localPort = serverSocket.socket().getLocalPort();
} catch (Exception e) {
throw UncheckedException.throwAsUncheckedException(e);
}
UUID id = idGenerator.generateId();
List<InetAddress> addresses = addressFactory.getCommunicationAddresses();
final Address address = new MultiChoiceAddress(id, localPort, addresses);
LOGGER.debug("Listening on {}.", address);
final ManagedExecutor executor = executorFactory.create("Incoming " + (allowRemote ? "remote" : "local") + " TCP Connector on port " + localPort);
executor.execute(new Receiver(serverSocket, action, allowRemote));
return new ConnectionAcceptor() {
public Address getAddress() {
return address;
}
public void requestStop() {
CompositeStoppable.stoppable(serverSocket).stop();
}
public void stop() {
requestStop();
executor.stop();
}
};
}
Aggregations