genodelabs / genode

Genode OS Framework
https://genode.org/
Other
1.08k stars 255 forks source link

decorator: sync handling not always triggered when it should be #5396

Open nfeske opened 1 day ago

nfeske commented 1 day ago

We observed a corner case related to the GUI stack's new dynamic sync handling (#5344) where the (themed) decorator failed to process a window layout. The case can occur when disabling window decorations (effectively removing any form of animation from the decorator) and when the final window layout appears shortly (within 30 ms) after a previous update that unregistered the sync handler (in the absence of animations, the unregistering happens at each _handle_gui_sync). Upon the trigger_gui_sync, the sync handler got re-installed as it should be. But since the previous _handle_gui_sync just happened, the situation was considered as still being periodic, expecting a further sync to occur anyway. So the immediate local_submit got skipped. With no further GUI activity, however, no sync signal occurs.

nfeske commented 1 day ago

Fixed by https://github.com/genodelabs/genode/commit/cb4cb4c006180612d6f761c40dfc7b51ba48607c