Skip to content

Fix quic write#342

Merged
turuslan merged 8 commits intomasterfrom
fix/lsquic-write
Mar 3, 2026
Merged

Fix quic write#342
turuslan merged 8 commits intomasterfrom
fix/lsquic-write

Conversation

@turuslan
Copy link
Contributor

  • fix lsquic_stream_write should retry
  • fix quic version
  • batch defer stream flush
  • batch defer process
  • simplify read/write retry callback
  • cmake preset with vcpkg

Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
@turuslan turuslan requested review from kamilsa and xDimon February 19, 2026 15:28
Signed-off-by: turuslan <turuslan.devbox@gmail.com>
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the QUIC (lsquic-based) transport to improve write retry behavior and reduce per-write processing overhead by batching stream flushes/engine processing. It also pins the QUIC version used by lsquic and adds build/dev tooling updates (vcpkg baseline + CMake preset).

Changes:

  • Add deferred write retry when lsquic_stream_write() returns 0 (send buffer full) and simplify read/write retry callbacks.
  • Batch stream flush requests and defer Engine::process() via a wantProcess() mechanism; set lsquic QUIC version mask.
  • Update vcpkg configuration baseline and add a CMakePresets.json preset for vcpkg builds.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
vcpkg-configuration.json Updates vcpkg baseline and removes artifact registry config.
src/transport/quic/stream.cpp Adds retry-on-0 write path and defers flushing via engine batching.
src/transport/quic/engine.cpp Pins QUIC version, adds on_write, and implements batched flush + deferred processing.
include/libp2p/transport/quic/stream.hpp Adds Engine friendship to allow engine-driven flush access.
include/libp2p/transport/quic/engine.hpp Adds flush/process batching state to engine and stream context.
CMakePresets.json Adds a vcpkg-based configure preset for Ninja builds.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: turuslan <turuslan.devbox@gmail.com>
@turuslan turuslan merged commit 28e4abc into master Mar 3, 2026
5 of 7 checks passed
@turuslan turuslan deleted the fix/lsquic-write branch March 3, 2026 13:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants