static void test_cq_end_read(void) { grpc_event *ev; grpc_completion_queue *cc; int on_finish_called = 0; void *tag = create_test_tag(); LOG_TEST(); cc = grpc_completion_queue_create(); grpc_cq_begin_op(cc, NULL, GRPC_READ); grpc_cq_end_read(cc, tag, NULL, increment_int_on_finish, &on_finish_called, NULL); ev = grpc_completion_queue_next(cc, gpr_inf_past); GPR_ASSERT(ev != NULL); GPR_ASSERT(ev->type == GRPC_READ); GPR_ASSERT(ev->tag == tag); GPR_ASSERT(ev->data.read == NULL); GPR_ASSERT(on_finish_called == 0); grpc_event_finish(ev); GPR_ASSERT(on_finish_called == 1); shutdown_and_destroy(cc); }
static void finish_read(grpc_call *call, grpc_op_error error, void *tag) { legacy_state *ls; grpc_byte_buffer *msg; lock(call); ls = get_legacy_state(call); msg = ls->msg_in; grpc_cq_end_read(call->cq, tag, call, finish_read_event, msg, msg); unlock(call); }