aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/cpp/blaze.cc5
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;