@ -360,8 +360,7 @@ static void unlock(grpc_call *call) {
int num_completed_requests = call - > num_completed_requests ;
int num_completed_requests = call - > num_completed_requests ;
int need_more_data =
int need_more_data =
call - > need_more_data & &
call - > need_more_data & &
! call - > sending & &
( call - > write_state > = WRITE_STATE_STARTED | | ! call - > is_client ) ;
call - > write_state > = WRITE_STATE_STARTED ;
int i ;
int i ;
if ( need_more_data ) {
if ( need_more_data ) {
@ -536,14 +535,16 @@ static void finish_finish_step(void *pc, grpc_op_error error) {
}
}
static void finish_start_step ( void * pc , grpc_op_error error ) {
static void finish_start_step ( void * pc , grpc_op_error error ) {
finish_send_op ( pc , GRPC_IOREQ_SEND_INITIAL_METADATA , WRITE_STATE_STARTED , error ) ;
finish_send_op ( pc , GRPC_IOREQ_SEND_INITIAL_METADATA , WRITE_STATE_STARTED ,
error ) ;
}
}
static send_action choose_send_action ( grpc_call * call ) {
static send_action choose_send_action ( grpc_call * call ) {
switch ( call - > write_state ) {
switch ( call - > write_state ) {
case WRITE_STATE_INITIAL :
case WRITE_STATE_INITIAL :
if ( is_op_live ( call , GRPC_IOREQ_SEND_INITIAL_METADATA ) ) {
if ( is_op_live ( call , GRPC_IOREQ_SEND_INITIAL_METADATA ) ) {
if ( is_op_live ( call , GRPC_IOREQ_SEND_MESSAGE ) | | is_op_live ( call , GRPC_IOREQ_SEND_CLOSE ) ) {
if ( is_op_live ( call , GRPC_IOREQ_SEND_MESSAGE ) | |
is_op_live ( call , GRPC_IOREQ_SEND_CLOSE ) ) {
return SEND_BUFFERED_INITIAL_METADATA ;
return SEND_BUFFERED_INITIAL_METADATA ;
} else {
} else {
return SEND_INITIAL_METADATA ;
return SEND_INITIAL_METADATA ;