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.
b_add(mbuf, 9);
h2s->sws -= sd->iobuf.data;
h2c->mws -= sd->iobuf.data;
- h2_process(h2c);
+ if (h2_send(h2s->h2c))
+ tasklet_wakeup(h2s->h2c->wait_event.tasklet);
end:
sd->iobuf.buf = NULL;