diff options
Diffstat (limited to 'src/main/cpp/blaze.cc')
-rw-r--r-- | src/main/cpp/blaze.cc | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/main/cpp/blaze.cc b/src/main/cpp/blaze.cc index 96d8e56ccb..32b21a12e3 100644 --- a/src/main/cpp/blaze.cc +++ b/src/main/cpp/blaze.cc @@ -1670,6 +1670,11 @@ unsigned int GrpcBlazeServer::Communicate() { std::unique_ptr<grpc::ClientReader<command_server::RunResponse>> reader( client_->Run(&context, request)); + // Release the server lock because the gRPC handles concurrent clients just + // fine. Note that this may result in two "waiting for other client" messages + // (one during server startup and one emitted by the server) + blaze::ReleaseLock(&blaze_lock_); + std::thread cancel_thread(&GrpcBlazeServer::CancelThread, this); bool command_id_set = false; bool pipe_broken = false; |