tcp_client_custom: fix socket leak (#27408)

pull/27956/head
Nayef Ghattas 3 years ago committed by GitHub
parent 8cbf308ce2
commit 0623e129cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/core/lib/iomgr/tcp_client_custom.cc

@ -51,7 +51,6 @@ static void custom_tcp_connect_cleanup(grpc_custom_tcp_connect* connect) {
}
grpc_custom_socket* socket = connect->socket;
delete connect;
socket->refs--;
if (socket->refs == 0) {
grpc_custom_socket_vtable->destroy(socket);
gpr_free(socket);
@ -75,6 +74,7 @@ static void on_alarm(void* acp, grpc_error_handle error) {
grpc_custom_socket_vtable->close(socket, custom_close_callback);
}
done = (--connect->refs == 0);
socket->refs--;
if (done) {
custom_tcp_connect_cleanup(connect);
}
@ -92,6 +92,7 @@ static void custom_connect_callback_internal(grpc_custom_socket* socket,
connect->slice_allocator = nullptr;
}
done = (--connect->refs == 0);
socket->refs--;
if (done) {
grpc_core::ExecCtx::Get()->Flush();
custom_tcp_connect_cleanup(connect);

Loading…
Cancel
Save