diff options
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java | 42 |
1 files changed, 18 insertions, 24 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java index e3e95b4740..f6a37fa334 100644 --- a/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java +++ b/src/main/java/com/google/devtools/build/lib/server/GrpcServerImpl.java @@ -412,25 +412,19 @@ public class GrpcServerImpl extends RPCServer implements CommandServerGrpc.Comma } } - private void restartIdleTimeout() { - synchronized (runningCommands) { - runningCommands.notify(); - } - } - @Override public void ping(PingRequest pingRequest, StreamObserver<PingResponse> streamObserver) { Preconditions.checkState(serving); - PingResponse.Builder response = PingResponse.newBuilder(); - if (pingRequest.getCookie().equals(requestCookie)) { - response.setCookie(responseCookie); - } - - streamObserver.onNext(response.build()); - streamObserver.onCompleted(); + try (RunningCommand command = new RunningCommand()) { + PingResponse.Builder response = PingResponse.newBuilder(); + if (pingRequest.getCookie().equals(requestCookie)) { + response.setCookie(responseCookie); + } - restartIdleTimeout(); + streamObserver.onNext(response.build()); + streamObserver.onCompleted(); + } } @Override @@ -440,18 +434,18 @@ public class GrpcServerImpl extends RPCServer implements CommandServerGrpc.Comma return; } - synchronized (runningCommands) { - RunningCommand command = runningCommands.get(request.getCommandId()); - if (command != null) { - command.thread.interrupt(); + try (RunningCommand cancelCommand = new RunningCommand()) { + synchronized (runningCommands) { + RunningCommand pendingCommand = runningCommands.get(request.getCommandId()); + if (pendingCommand != null) { + pendingCommand.thread.interrupt(); + } + + startSlowInterruptWatcher(ImmutableSet.of(request.getCommandId())); } - startSlowInterruptWatcher(ImmutableSet.of(request.getCommandId())); + streamObserver.onNext(CancelResponse.newBuilder().setCookie(responseCookie).build()); + streamObserver.onCompleted(); } - - streamObserver.onNext(CancelResponse.newBuilder().setCookie(responseCookie).build()); - streamObserver.onCompleted(); - - restartIdleTimeout(); } } |