commit | 7eef071bd3d6738a167533695485c559310435bf | [log] [tgz] |
---|---|---|
author | QUICHE team <quiche-dev@google.com> | Thu May 09 09:42:38 2019 -0700 |
committer | Copybara-Service <copybara-worker@google.com> | Thu May 09 09:45:35 2019 -0700 |
tree | 9a978ffafca6fa3e22472c23f0af98b30441e72d | |
parent | 4031554ff78aa22fdf6711589c5d820c67b35f5c [diff] |
Change SendOrQueueMessage to take a QuicMemSliceSpan. QuicMemSliceSpan now has a `ConsumeAll` method in its API, which allows us to move the mem slices into a queue of messages to send. This is now the same mechanism used to store mem slice spans in a stream or message's send buffer. It ensures that mem slices are properly ref-counted so that the contents are not deleted after storing them. This should enable zero-copy writes down the line. However, currently, we still have two copies: - One in the application layer, where we create mem slices by copying data - One in the session, when converting mem slices back into a mem slice span Nothing stops us from fixing the former, but it requires a bit of refactoring at the application layer. The latter requires an API for building a QuicMemSliceSpan out of QuicMemSlices without copying them. This should be possible, but doesn't seem to exist today. gfe-relnote: n/a (Quartc only) PiperOrigin-RevId: 247442584 Change-Id: Ie1bc1ad2f878ee312a5e13b048fd2233864c3d18
QUICHE (QUIC, Http/2, Etc) is Google‘s implementation of QUIC and related protocols. It powers Chromium as well as Google’s QUIC servers and some other projects.
The code is currently in process of being moved from https://cs.chromium.org/chromium/src/net/third_party/ into this repository. Please excuse our appearance while we're under construction.