|
|
|
@ -118,6 +118,7 @@ struct grpc_call { |
|
|
|
|
gpr_uint8 got_status_code; |
|
|
|
|
gpr_uint8 sending; |
|
|
|
|
gpr_uint8 num_completed_requests; |
|
|
|
|
gpr_uint8 got_any_data; |
|
|
|
|
gpr_uint8 need_more_data; |
|
|
|
|
|
|
|
|
|
reqinfo requests[GRPC_IOREQ_OP_COUNT]; |
|
|
|
@ -575,7 +576,7 @@ static grpc_call_error start_ioreq(grpc_call *call, const grpc_ioreq *reqs, |
|
|
|
|
call->buffered_messages); |
|
|
|
|
finish_ioreq_op(call, GRPC_IOREQ_RECV_MESSAGES, GRPC_OP_OK); |
|
|
|
|
} else { |
|
|
|
|
call->need_more_data = 1; |
|
|
|
|
call->need_more_data = call->got_any_data; |
|
|
|
|
} |
|
|
|
|
if (call->stream_closed) { |
|
|
|
|
finish_ioreq_op(call, GRPC_IOREQ_RECV_STATUS, GRPC_OP_OK); |
|
|
|
@ -1053,6 +1054,7 @@ void grpc_call_recv_message(grpc_call_element *elem, |
|
|
|
|
grpc_call *call = CALL_FROM_TOP_ELEM(elem); |
|
|
|
|
grpc_byte_buffer_array *dest; |
|
|
|
|
lock(call); |
|
|
|
|
call->got_any_data = 1; |
|
|
|
|
if (call->requests[GRPC_IOREQ_RECV_MESSAGES].master != NULL) { |
|
|
|
|
dest = call->requests[GRPC_IOREQ_RECV_MESSAGES].data.recv_messages; |
|
|
|
|
} else { |
|
|
|
|