aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/channel/channel_stack.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <craig.tiller@gmail.com>2015-11-24 07:31:31 -0800
committerGravatar Craig Tiller <craig.tiller@gmail.com>2015-11-24 07:31:31 -0800
commit906e3bcfb5a32a25af2f00dd4679052f8a608b3f (patch)
tree6b11056304b9adcafb57806240389039d9a2b8ae /src/core/channel/channel_stack.c
parent61efb98edaffb24ce0b9064751d6868ce8fd1b24 (diff)
Stripping out master channel as a concept
Diffstat (limited to 'src/core/channel/channel_stack.c')
-rw-r--r--src/core/channel/channel_stack.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/core/channel/channel_stack.c b/src/core/channel/channel_stack.c
index 7f7fbf420f..53433a0923 100644
--- a/src/core/channel/channel_stack.c
+++ b/src/core/channel/channel_stack.c
@@ -101,9 +101,10 @@ grpc_call_element *grpc_call_stack_element(grpc_call_stack *call_stack,
return CALL_ELEMS_FROM_STACK(call_stack) + index;
}
-void grpc_channel_stack_init(grpc_exec_ctx *exec_ctx,
+void grpc_channel_stack_init(grpc_exec_ctx *exec_ctx,int initial_refs,
+ grpc_iomgr_cb_func destroy, void *destroy_arg,
const grpc_channel_filter **filters,
- size_t filter_count, grpc_channel *master,
+ size_t filter_count,
const grpc_channel_args *channel_args,
grpc_channel_stack *stack) {
size_t call_size =
@@ -115,6 +116,8 @@ void grpc_channel_stack_init(grpc_exec_ctx *exec_ctx,
size_t i;
stack->count = filter_count;
+ gpr_ref_init(&stack->refcount.refs, initial_refs);
+ grpc_closure_init(&stack->refcount.destroy, destroy, destroy_arg);
elems = CHANNEL_ELEMS_FROM_STACK(stack);
user_data =
((char *)elems) +
@@ -122,7 +125,7 @@ void grpc_channel_stack_init(grpc_exec_ctx *exec_ctx,
/* init per-filter data */
for (i = 0; i < filter_count; i++) {
- args.master = master;
+ args.channel_stack = stack;
args.channel_args = channel_args;
args.is_first = i == 0;
args.is_last = i == (filter_count - 1);
@@ -174,7 +177,7 @@ void grpc_call_stack_init(grpc_exec_ctx *exec_ctx,
/* init per-filter data */
for (i = 0; i < count; i++) {
- args.refcount = &call_stack->refcount;
+ args.call_stack = call_stack;
args.server_transport_data = transport_server_data;
args.context = context;
call_elems[i].filter = channel_elems[i].filter;