diff options
author | 2015-04-07 14:32:15 -0700 | |
---|---|---|
committer | 2015-04-07 16:20:48 -0700 | |
commit | aec96aa2232b3ab7f86bc08a99f82684406edf0b (patch) | |
tree | bfba274bab64544dafb29256788138be5039f965 /src/core/surface/server.h | |
parent | 106882854b40775ac570fbf307ad978e808d8e62 (diff) |
Fix server shutdown
A previous fix to make close() occur later can cause socket reuse by servers to fail as previous sockets are left asynchronously open.
This change:
- adds a callback to TCP server shutdown to signal that the server is completely shutdown
- wait for that callback before destroying listeners in the server (and before destroying the server)
- handles fallout
Diffstat (limited to 'src/core/surface/server.h')
-rw-r--r-- | src/core/surface/server.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/core/surface/server.h b/src/core/surface/server.h index e33f69b8c7..548a16c6c9 100644 --- a/src/core/surface/server.h +++ b/src/core/surface/server.h @@ -51,6 +51,8 @@ void grpc_server_add_listener(grpc_server *server, void *listener, grpc_pollset **pollsets, size_t npollsets), void (*destroy)(grpc_server *server, void *arg)); +void grpc_server_listener_destroy_done(void *server); + /* Setup a transport - creates a channel stack, binds the transport to the server */ grpc_transport_setup_result grpc_server_setup_transport( |