Search in sources :

Example 1 with StoppableExecutor

use of org.gradle.internal.concurrent.StoppableExecutor in project gradle by gradle.

the class ParallelTaskPlanExecutor method process.

@Override
public void process(TaskExecutionPlan taskExecutionPlan, Action<? super TaskInternal> taskWorker) {
    StoppableExecutor executor = executorFactory.create("Task worker");
    try {
        startAdditionalWorkers(taskExecutionPlan, taskWorker, executor);
        taskWorker(taskExecutionPlan, taskWorker, buildOperationWorkerRegistry).run();
        taskExecutionPlan.awaitCompletion();
    } finally {
        executor.stop();
    }
}
Also used : StoppableExecutor(org.gradle.internal.concurrent.StoppableExecutor)

Example 2 with StoppableExecutor

use of org.gradle.internal.concurrent.StoppableExecutor 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 StoppableExecutor 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();
        }
    };
}
Also used : ConnectionAcceptor(org.gradle.internal.remote.ConnectionAcceptor) InetSocketAddress(java.net.InetSocketAddress) Address(org.gradle.internal.remote.Address) InetAddress(java.net.InetAddress) InetSocketAddress(java.net.InetSocketAddress) StoppableExecutor(org.gradle.internal.concurrent.StoppableExecutor) UUID(java.util.UUID) InetAddress(java.net.InetAddress) ServerSocketChannel(java.nio.channels.ServerSocketChannel) ClosedChannelException(java.nio.channels.ClosedChannelException) UncheckedException(org.gradle.internal.UncheckedException)

Aggregations

StoppableExecutor (org.gradle.internal.concurrent.StoppableExecutor)2 InetAddress (java.net.InetAddress)1 InetSocketAddress (java.net.InetSocketAddress)1 ClosedChannelException (java.nio.channels.ClosedChannelException)1 ServerSocketChannel (java.nio.channels.ServerSocketChannel)1 UUID (java.util.UUID)1 UncheckedException (org.gradle.internal.UncheckedException)1 Address (org.gradle.internal.remote.Address)1 ConnectionAcceptor (org.gradle.internal.remote.ConnectionAcceptor)1