diff options
author | Craig Tiller <ctiller@google.com> | 2015-06-25 09:00:34 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-06-25 09:00:34 -0700 |
commit | 3b1847c5283c3776ca700fb5ee56c894e68d970b (patch) | |
tree | 592027466cdf3d49cc4d790804b7873d2245c968 /src/core/surface/server.c | |
parent | 4b62811032b12e988ca320e43b41c3bda7834869 (diff) | |
parent | 48f0a13f3872876787f4d7588b396db914319b1b (diff) |
Merge branch 'oops-i-split-it-again' into tis-but-thy-name
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 445bd1a103..607344a7a6 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -191,9 +191,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]; @@ -523,7 +523,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, @@ -535,9 +535,7 @@ static void server_mutate_op(grpc_call_element *elem, 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; } } @@ -633,6 +631,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); call_list_join(&chand->server->lists[ALL_CALLS], calld, ALL_CALLS); gpr_mu_unlock(&chand->server->mu_call); |