aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/transport/chttp2_transport.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <craig.tiller@gmail.com>2015-06-02 09:05:23 -0700
committerGravatar Craig Tiller <craig.tiller@gmail.com>2015-06-02 09:05:23 -0700
commit5dde66ecac3cdcdeb362a5e0c8da450a060367df (patch)
treec709680f3c6e36966701ba2f205419cb31bf1a97 /src/core/transport/chttp2_transport.c
parentf93fd05a97081626dbd78c4553b6c2e78eeba920 (diff)
Handle reffing when a cancel or bind gets stuck in the waiting queue
Diffstat (limited to 'src/core/transport/chttp2_transport.c')
-rw-r--r--src/core/transport/chttp2_transport.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c
index 07c5b0be0d..d9c712cc63 100644
--- a/src/core/transport/chttp2_transport.c
+++ b/src/core/transport/chttp2_transport.c
@@ -1162,6 +1162,13 @@ static void perform_op_locked(transport *t, stream *s, grpc_transport_op *op) {
if (op->bind_pollset) {
add_to_pollset_locked(t, op->bind_pollset);
}
+
+ if (op->on_consumed) {
+ op_closure c;
+ c.cb = op->on_consumed;
+ c.user_data = op->on_consumed_user_data;
+ schedule_cb(t, c, 1);
+ }
}
static void perform_op(grpc_transport *gt, grpc_stream *gs,