|
|
|
@ -191,6 +191,7 @@ struct transport { |
|
|
|
|
gpr_uint8 writing; |
|
|
|
|
gpr_uint8 calling_back; |
|
|
|
|
gpr_uint8 destroying; |
|
|
|
|
gpr_uint8 closed; |
|
|
|
|
error_state error_state; |
|
|
|
|
|
|
|
|
|
/* stream indexing */ |
|
|
|
@ -416,6 +417,7 @@ static void init_transport(transport *t, grpc_transport_setup_callback setup, |
|
|
|
|
t->next_stream_id = is_client ? 1 : 2; |
|
|
|
|
t->last_incoming_stream_id = 0; |
|
|
|
|
t->destroying = 0; |
|
|
|
|
t->closed = 0; |
|
|
|
|
t->is_client = is_client; |
|
|
|
|
t->outgoing_window = DEFAULT_WINDOW; |
|
|
|
|
t->incoming_window = DEFAULT_WINDOW; |
|
|
|
@ -521,6 +523,8 @@ static void destroy_transport(grpc_transport *gt) { |
|
|
|
|
static void close_transport(grpc_transport *gt) { |
|
|
|
|
transport *t = (transport *)gt; |
|
|
|
|
gpr_mu_lock(&t->mu); |
|
|
|
|
GPR_ASSERT(!t->closed); |
|
|
|
|
t->closed = 1; |
|
|
|
|
if (t->ep) { |
|
|
|
|
grpc_endpoint_shutdown(t->ep); |
|
|
|
|
} |
|
|
|
|