Skip to content

Commit 5c010ed

Browse files
yyoyoian-pixelclaude
authored andcommitted
refactor(tunnel): revert to single-loop with pipelining
The split upload/download task architecture caused video upload stalls: upload ack responses were delayed behind slow poll responses in the pending_writes ordering buffer. The single-loop naturally serializes uploads with reply processing, giving steady ack delivery. Single-loop keeps all pipelining benefits (elevated polls, adaptive depth, fast-path uploads) while avoiding the ordering issue. Removed dead upload_cap config field. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ad51752 commit 5c010ed

2 files changed

Lines changed: 181 additions & 308 deletions

File tree

src/config.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,6 @@ pub struct Config {
209209
#[serde(default = "default_block_stun")]
210210
pub block_stun: bool,
211211

212-
/// Max unacked upload ops per session. Limits how many data ops can
213-
/// be in flight before the upload task pauses. Lower = more responsive
214-
/// acks (better for messaging), higher = more throughput (better for
215-
/// file uploads). 0 = unlimited. Default 3.
216-
#[serde(default = "default_upload_cap")]
217-
pub upload_cap: u8,
218-
219212
#[serde(default = "default_block_quic")]
220213
pub block_quic: bool,
221214
/// When true, suppress the random `_pad` field that v1.8.0+ adds
@@ -512,7 +505,6 @@ fn default_tunnel_doh() -> bool { true }
512505
/// causes TCP-over-TCP meltdown (<1 Mbps). Browsers fall back to
513506
/// HTTPS/TCP within seconds of the silent UDP drop. Issue #793.
514507
fn default_block_stun() -> bool { true }
515-
fn default_upload_cap() -> u8 { 3 }
516508
fn default_block_quic() -> bool { true }
517509

518510
/// Default for `block_doh`: `true` (browser DoH is rejected so the

0 commit comments

Comments
 (0)