diff options
Diffstat (limited to 'src/cpp/client/client_context.cc')
-rw-r--r-- | src/cpp/client/client_context.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 78774a7f12..58a8ad252b 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -50,6 +50,14 @@ ClientContext::~ClientContext() { } if (cq_) { grpc_completion_queue_shutdown(cq_); + // Drain cq_. + grpc_event* ev; + grpc_completion_type t; + do { + ev = grpc_completion_queue_next(cq_, gpr_inf_future); + t = ev->type; + grpc_event_finish(ev); + } while (t != GRPC_QUEUE_SHUTDOWN); grpc_completion_queue_destroy(cq_); } } |