|
|
|
@ -169,12 +169,12 @@ legacy_state *get_legacy_state(grpc_call *call) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void grpc_call_internal_ref(grpc_call *c, const char *reason) {
|
|
|
|
|
gpr_log(GPR_DEBUG, "ref %p %s", c, reason); |
|
|
|
|
gpr_log(GPR_DEBUG, "ref %p %s %d", c, reason, (int)c->internal_refcount.count); |
|
|
|
|
gpr_ref(&c->internal_refcount);
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void grpc_call_internal_unref(grpc_call *c, const char *reason) { |
|
|
|
|
gpr_log(GPR_DEBUG, "unref %p %s", c, reason); |
|
|
|
|
gpr_log(GPR_DEBUG, "unref %p %s %d", c, reason, (int)c->internal_refcount.count); |
|
|
|
|
if (gpr_unref(&c->internal_refcount)) { |
|
|
|
|
grpc_call_stack_destroy(CALL_STACK_FROM_CALL(c)); |
|
|
|
|
grpc_channel_internal_unref(c->channel); |
|
|
|
@ -417,14 +417,14 @@ static void enact_send_action(grpc_call *call, send_action sa) { |
|
|
|
|
CALL_ELEM_FROM_CALL(call, 0), |
|
|
|
|
grpc_mdelem_from_metadata_strings( |
|
|
|
|
call->metadata_context, |
|
|
|
|
grpc_channel_get_status_string(call->channel), |
|
|
|
|
grpc_mdstr_ref(grpc_channel_get_status_string(call->channel)), |
|
|
|
|
grpc_mdstr_from_string(call->metadata_context, status_str))); |
|
|
|
|
if (data.send_close.details) { |
|
|
|
|
grpc_call_element_send_metadata( |
|
|
|
|
CALL_ELEM_FROM_CALL(call, 0), |
|
|
|
|
grpc_mdelem_from_metadata_strings( |
|
|
|
|
call->metadata_context, |
|
|
|
|
grpc_channel_get_message_string(call->channel), |
|
|
|
|
grpc_mdstr_ref(grpc_channel_get_message_string(call->channel)), |
|
|
|
|
grpc_mdstr_from_string(call->metadata_context, |
|
|
|
|
data.send_close.details))); |
|
|
|
|
} |
|
|
|
@ -743,6 +743,7 @@ grpc_call_error grpc_call_server_accept(grpc_call *call, |
|
|
|
|
finished_tag) */ |
|
|
|
|
grpc_cq_begin_op(cq, call, GRPC_FINISHED); |
|
|
|
|
|
|
|
|
|
lock(call); |
|
|
|
|
err = bind_cq(call, cq); |
|
|
|
|
if (err != GRPC_CALL_OK) return err; |
|
|
|
|
|
|
|
|
|