akka-http
akka-http copied to clipboard
Cleanup Http2StreamHandling vs. Http2Multiplexer
There have been some attempts to clean up the interface between stream handling and multiplexer but some issues still remain:
- The call path of
Sending.pullNextFrame
->OutStream.nextFrame
/endStreamIfPossible
is more complex than necessary. - A stream might enqueue itself multiple times because the above call path makes it harder to keep track in
OutStream
whether a stream is currently enqueued or not. - We needed to introduce
NothingToSend
to deal with duplicate entries in thesendableOutStream
queue in #3873. This can be removed once we can ensure that no streams are enqueued multiple times.