diff options
author | Craig Tiller <craig.tiller@gmail.com> | 2015-06-11 22:47:11 -0700 |
---|---|---|
committer | Craig Tiller <craig.tiller@gmail.com> | 2015-06-11 22:47:11 -0700 |
commit | 1e6facbfbf1e31b164161cd218971210c1e69a3d (patch) | |
tree | 49b833072368c8a1af066ae7aa904ca797b31a28 /src/core/surface/server.c | |
parent | 99f8055965d8577d876763a70d5feb75f5752d24 (diff) |
Refactor progress
Diffstat (limited to 'src/core/surface/server.c')
-rw-r--r-- | src/core/surface/server.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/core/surface/server.c b/src/core/surface/server.c index 3671efe0d0..a76a6c7812 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -183,9 +183,9 @@ struct call_data { grpc_stream_op_buffer *recv_ops; grpc_stream_state *recv_state; - void (*on_done_recv)(void *user_data, int success); - void *recv_user_data; + grpc_iomgr_closure *on_done_recv; + grpc_iomgr_closure server_on_recv; grpc_iomgr_closure kill_zombie_closure; call_data **root[CALL_LIST_COUNT]; @@ -503,7 +503,7 @@ static void server_on_recv(void *ptr, int success) { break; } - calld->on_done_recv(calld->recv_user_data, success); + calld->on_done_recv->cb(calld->on_done_recv->cb_arg, success); } static void server_mutate_op(grpc_call_element *elem, grpc_transport_op *op) { @@ -514,9 +514,7 @@ static void server_mutate_op(grpc_call_element *elem, grpc_transport_op *op) { calld->recv_ops = op->recv_ops; calld->recv_state = op->recv_state; calld->on_done_recv = op->on_done_recv; - calld->recv_user_data = op->recv_user_data; - op->on_done_recv = server_on_recv; - op->recv_user_data = elem; + op->on_done_recv = &calld->server_on_recv; } } @@ -612,6 +610,8 @@ static void init_call_elem(grpc_call_element *elem, calld->deadline = gpr_inf_future; calld->call = grpc_call_from_top_element(elem); + grpc_iomgr_closure_init(&calld->server_on_recv, server_on_recv, elem); + gpr_mu_lock(&chand->server->mu); call_list_join(&chand->server->lists[ALL_CALLS], calld, ALL_CALLS); chand->num_calls++; |