You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every WS frame (including orderbook_delta at potentially >1k msg/sec) allocates a Task, a Future, a contextvars copy, and a shield Future just to make _process_frame uninterruptible. On busy markets this dominates the recv-loop allocation budget and adds GC pressure that the #199 in-place work was meant to avoid.
Drop the per-frame shield() and instead disable cancellation inside _process_frame via a single guard (e.g., process inline and use a _paused flag the pause path waits on, or shield once per pause-window rather than per frame). Verify with a bench against the current bench_ws_recv.py shape.
Activity