|
|
|
@ -191,6 +191,8 @@ static void start_accept(server_port *port) { |
|
|
|
|
goto failure; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* TODO(jtattermusch): probably a race here, we regularly get use-after-free on server shutdown */ |
|
|
|
|
GPR_ASSERT(port->socket != 0xfeeefeee); |
|
|
|
|
success = port->AcceptEx(port->socket->socket, sock, port->addresses, 0, |
|
|
|
|
addrlen, addrlen, &bytes_received, |
|
|
|
|
&port->socket->read_info.overlapped); |
|
|
|
@ -244,7 +246,9 @@ static void on_accept(void *arg, int success) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (ep) sp->server->cb(sp->server->cb_arg, ep); |
|
|
|
|
start_accept(sp); |
|
|
|
|
if (success) { |
|
|
|
|
start_accept(sp); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int add_socket_to_server(grpc_tcp_server *s, SOCKET sock, |
|
|
|
|