diff options
author | Craig Tiller <craig.tiller@gmail.com> | 2015-02-24 17:02:07 -0800 |
---|---|---|
committer | Craig Tiller <craig.tiller@gmail.com> | 2015-02-24 17:02:07 -0800 |
commit | 7c0f33dea9d5a389a20c6d86e77673d91ad1460d (patch) | |
tree | 41da5ace768e1682ca75fc127127a83fcac3b970 /src/cpp/server/server.cc | |
parent | ba08dd7400d27302b97bf2108078a3e7b3333965 (diff) | |
parent | cb0a28eb86a22d4b220c8d025b96165cf68279f7 (diff) |
Merge github.com:grpc/grpc into credit
Diffstat (limited to 'src/cpp/server/server.cc')
-rw-r--r-- | src/cpp/server/server.cc | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 0d81f0b126..dc48546541 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -248,21 +248,26 @@ bool Server::Start() { } void Server::Shutdown() { - { - std::unique_lock<std::mutex> lock(mu_); - if (started_ && !shutdown_) { - shutdown_ = true; - grpc_server_shutdown(server_); - cq_.Shutdown(); + std::unique_lock<std::mutex> lock(mu_); + if (started_ && !shutdown_) { + shutdown_ = true; + grpc_server_shutdown(server_); + cq_.Shutdown(); - // Wait for running callbacks to finish. - while (num_running_cb_ != 0) { - callback_cv_.wait(lock); - } + // Wait for running callbacks to finish. + while (num_running_cb_ != 0) { + callback_cv_.wait(lock); } } } +void Server::Wait() { + std::unique_lock<std::mutex> lock(mu_); + while (num_running_cb_ != 0) { + callback_cv_.wait(lock); + } +} + void Server::PerformOpsOnCall(CallOpBuffer* buf, Call* call) { static const size_t MAX_OPS = 8; size_t nops = MAX_OPS; |