aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-01-14 15:58:45 -0800
committerGravatar Craig Tiller <ctiller@google.com>2015-01-14 15:58:45 -0800
commit1371abd306e33f87b8016a587e3decc73b3fafdf (patch)
tree4a6b80f60f6eb47a9a9766c8fcc150a4870a2591 /src
parent0d65c784db24aaa5b3db7996e971b1898cec3bf1 (diff)
Fix refcounting bug
Diffstat (limited to 'src')
-rw-r--r--src/core/surface/call.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 24c1567db9..6f8e0d5db7 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -465,6 +465,8 @@ static void call_started(void *user_data, grpc_op_error error) {
done_writes_done(call, error);
}
}
+
+ grpc_call_internal_unref(call);
}
grpc_call_error grpc_call_invoke(grpc_call *call, grpc_completion_queue *cq,
@@ -531,6 +533,7 @@ grpc_call_error grpc_call_invoke(grpc_call *call, grpc_completion_queue *cq,
op.done_cb = call_started;
op.data.start.pollset = grpc_cq_pollset(cq);
op.user_data = call;
+ grpc_call_internal_ref(call);
elem = CALL_ELEM_FROM_CALL(call, 0);
elem->filter->call_op(elem, NULL, &op);