aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/surface/server.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-05-29 23:09:26 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-05-29 23:09:26 -0700
commit52760dd0e5d478d49d6614597749bbec01a7a057 (patch)
treedab108e02ae9a81bc941de9e9832e9287c166670 /src/core/surface/server.c
parent3e9ff5c04abb218e35bc2e15d567620b63c77616 (diff)
Trigger server shutdown check where it needs to be
Diffstat (limited to 'src/core/surface/server.c')
-rw-r--r--src/core/surface/server.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index a72dd8ece4..6118e43620 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -196,6 +196,7 @@ static void begin_call(grpc_server *server, call_data *calld,
static void fail_call(grpc_server *server, requested_call *rc);
static void shutdown_channel(channel_data *chand, int send_goaway,
int send_disconnect);
+static void maybe_finish_shutdown(grpc_server *server);
static int call_list_join(call_data **root, call_data *call, call_list list) {
GPR_ASSERT(!call->root[list]);
@@ -315,6 +316,7 @@ static void destroy_channel(channel_data *chand) {
GPR_ASSERT(chand->server != NULL);
orphan_channel(chand);
server_ref(chand->server);
+ maybe_finish_shutdown(chand->server);
grpc_iomgr_add_callback(finish_destroy_channel, chand);
}