aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/core/util/reconnect_server.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-09-18 17:29:00 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-09-18 17:29:00 -0700
commitd1bec03fa148344b8eac2b59517252d86e4ca858 (patch)
treef359e48f9151ab7ceff72cd624ad6c7a59e4d304 /test/core/util/reconnect_server.c
parent33825118df7157219cec15382beb006d3462ad96 (diff)
Call list progress
Diffstat (limited to 'test/core/util/reconnect_server.c')
-rw-r--r--test/core/util/reconnect_server.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.c
index 71fb69b54f..b4eb7ed916 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.c
@@ -65,15 +65,16 @@ static void pretty_print_backoffs(reconnect_server *server) {
}
}
-static void on_connect(void *arg, grpc_endpoint *tcp) {
+static void on_connect(void *arg, grpc_endpoint *tcp,
+ grpc_call_list *call_list) {
char *peer;
char *last_colon;
reconnect_server *server = (reconnect_server *)arg;
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
timestamp_list *new_tail;
peer = grpc_endpoint_get_peer(tcp);
- grpc_endpoint_shutdown(tcp);
- grpc_endpoint_destroy(tcp);
+ grpc_endpoint_shutdown(tcp, call_list);
+ grpc_endpoint_destroy(tcp, call_list);
if (peer) {
last_colon = strrchr(peer, ':');
if (server->peer == NULL) {
@@ -114,6 +115,7 @@ void reconnect_server_init(reconnect_server *server) {
void reconnect_server_start(reconnect_server *server, int port) {
struct sockaddr_in addr;
int port_added;
+ grpc_call_list call_list = GRPC_CALL_LIST_INIT;
addr.sin_family = AF_INET;
addr.sin_port = htons((gpr_uint16)port);
@@ -125,8 +127,10 @@ void reconnect_server_start(reconnect_server *server, int port) {
GPR_ASSERT(port_added == port);
grpc_tcp_server_start(server->tcp_server, server->pollsets, 1, on_connect,
- server);
+ server, &call_list);
gpr_log(GPR_INFO, "reconnect tcp server listening on 0.0.0.0:%d", port);
+
+ grpc_call_list_run(&call_list);
}
void reconnect_server_poll(reconnect_server *server, int seconds) {
@@ -152,12 +156,18 @@ void reconnect_server_clear_timestamps(reconnect_server *server) {
server->peer = NULL;
}
-static void do_nothing(void *ignored) {}
+static void do_nothing(void *ignored, int success, grpc_call_list *call_list) {}
void reconnect_server_destroy(reconnect_server *server) {
- grpc_tcp_server_destroy(server->tcp_server, do_nothing, NULL);
+ grpc_call_list call_list = GRPC_CALL_LIST_INIT;
+ grpc_closure do_nothing_closure[2];
+ grpc_closure_init(&do_nothing_closure[0], do_nothing, NULL);
+ grpc_closure_init(&do_nothing_closure[1], do_nothing, NULL);
+ grpc_tcp_server_destroy(server->tcp_server, &do_nothing_closure[0],
+ &call_list);
reconnect_server_clear_timestamps(server);
- grpc_pollset_shutdown(&server->pollset, do_nothing, NULL);
+ grpc_pollset_shutdown(&server->pollset, &do_nothing_closure[1], &call_list);
+ grpc_call_list_run(&call_list);
grpc_pollset_destroy(&server->pollset);
grpc_shutdown();
}