mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-05-03 00:08:10 +00:00
MINOR: mux-h2: always use h2_send() in h2_done_ff(), not h2_process()
By calling h2_process(), the code would theoretically make it possible for a synchronous ->wake() call to provoke an indirect call to h2_snd_buf() while we're in h2_done_ff(), which could be quite bad. The current conditions do not permit it right now but this could easily break by accident. Better use h2_send() and wake the task up if needed. Precise performance tests showed no change.
This commit is contained in:
parent
58185669d8
commit
0fa5adee3b
@ -7070,7 +7070,8 @@ static void h2_done_ff(struct stconn *sc)
|
|||||||
b_add(mbuf, 9);
|
b_add(mbuf, 9);
|
||||||
h2s->sws -= sd->iobuf.data;
|
h2s->sws -= sd->iobuf.data;
|
||||||
h2c->mws -= sd->iobuf.data;
|
h2c->mws -= sd->iobuf.data;
|
||||||
h2_process(h2c);
|
if (h2_send(h2s->h2c))
|
||||||
|
tasklet_wakeup(h2s->h2c->wait_event.tasklet);
|
||||||
|
|
||||||
end:
|
end:
|
||||||
sd->iobuf.buf = NULL;
|
sd->iobuf.buf = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user