Beim schnellen Scrollen durch ein großes PDF hat der Render-Thread jede
vorbeigezogene Seite der Reihe nach gerendert; die gerade sichtbare
Seite musste warten.
- Gemeinsame Warteschlange (Mutex + Condvar) statt Kanal: Der
Render-Thread nimmt den wichtigsten wartenden Auftrag zuerst.
- Je Bild meldet der Event-Loop zwischen begin_frame und end_frame die
benötigten Seiten an (die aktuelle zuerst); end_frame verwirft
wartende Aufträge und fertige Ergebnisse für Seiten, die nicht mehr
gebraucht werden. Die vorab gerenderte nächste Seite bleibt erhalten.
Gemessen (Xvfb, Debug-Build, PDF mit 60 Seiten, 400 Mausrad-Schritte):
die letzte Seite erscheint nach 0,12–0,16 s statt 0,63–1,56 s.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>