MINOR: mux-h1: Subscribe to send in h1_snd_buf() when not all data have been sent
After a call to snd_buf, if some data remain in the channel's buffer, this means
the system buffers are full or we are unable to fully consume an HTX block for
any reason. In the last case, we need to wakeup the stream to process more data
as soon as possible. We do it subscribing to send at the end of h1_snd_buf().
diff --git a/src/mux_h1.c b/src/mux_h1.c
index 534e14d..6c104f3 100644
--- a/src/mux_h1.c
+++ b/src/mux_h1.c
@@ -1807,6 +1807,12 @@
if (!b_data(buf))
ret = count;
}
+
+ if (count && ret != count) {
+ if (!(h1c->wait_event.wait_reason & SUB_CAN_SEND))
+ cs->conn->xprt->subscribe(cs->conn, SUB_CAN_SEND, &h1c->wait_event);
+ }
+
return ret;
}