gpui: Bound benchmark frame servicing to the tasks queued at frame start (#62235)
The renderer benchmarks drain the main queue to quiescence before each measured frame, so a task that yields and re-queues itself (an idle sweep, a poller) runs to completion inside a single measured frame — or keeps the benchmark spinning forever. Real platforms don't work that way: macOS's main-queue drain only runs the items present when the drain starts, Linux runs one runnable per calloop idle callback, and Windows drains under a 10ms budget before servicing paint messages — frames always get a chance to preempt. So `run_ready_main_tasks` now only runs the tasks that were queued when servicing began, letting self-re-queuing work advance one batch per frame like it would under a real run loop, and `BenchAppContext` grows a `run_until` (wrapping the dispatcher primitive task benchmarks already use) so setup code can pump the app until a condition holds without settling to idle first. Release Notes: - N/A
A
Anthony Eid committed
82878540b5410b288a2c92cb9ee5675533e4d807
Parent: c305d68
Committed by GitHub <noreply@github.com>
on 8/5/2026, 8:24:19 PM