netty / netty-incubator-codec-http3

Experimental HTTP3 codec on top of QUIC
Apache License 2.0
167 stars 35 forks source link

Ensure QuicStreamChannel.shutdownOutput() is only called once all pre… #276

Closed normanmaurer closed 7 months ago

normanmaurer commented 7 months ago

…vious writes were processed.

Motivation: We need to ensure QuicStreamChannel.shutdownOutput() is only called once all previous writes were processed. This is necessary as otherwise shutdownOutput() might be called while some writes are still queued (due flowcontrol).

Modifications:

Result: Always drain write queue first before shutdown the output.

normanmaurer commented 7 months ago

/cc @yawkat ...

normanmaurer commented 7 months ago

Otherwise LGTM. Man, this method control flow is so complicated.

I agree... Once this is fixed I will see if I can simplify it