diff options
author | Lukacs Berki <lberki@google.com> | 2016-07-18 11:17:22 +0000 |
---|---|---|
committer | John Cater <jcater@google.com> | 2016-07-18 18:08:35 +0000 |
commit | 266965f7adb629b0a4b8de6bcd5d6a514a52c6df (patch) | |
tree | 90f5a23254a359d16752ab826131a4e6d659bc8a /src/main/java/com/google/devtools | |
parent | c5cd8dd7e2689ea0f103a62678ea3ca0f4bc4190 (diff) |
Actually restart server timeout on Ping() and Cancel() RPCs.
In theory, now we can cancel Ping() and Cancel() RPCs, too, but since we don't tell their UUID anyone, we are fine.
--
MOS_MIGRATED_REVID=127703598
Diffstat (limited to 'src/main/java/com/google/devtools')
-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(); } } |