mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-03-23 05:35:51 -04:00
Add wl_fixes.ack_global_remove()
The wl_global_remove() function was introduce to help mitigate clients getting unintentionally disconnected if a global is added and removed in a short burst. The intended usage was: - the compositor calls wl_global_remove() - after a certain period of time, the compositor calls wl_global_destroy() Unfortunately, it did not fully fix the issue due to the way monotonic clock works on Linux. Specifically, it can tick even during sleep. This change adds a slightly better way to handle global removal. With the proposed changes, the clients need to signal to the compositor that they won't bind the global anymore. After all clients have acknowledged a wl_registry.global_remove, the compositor can finally destroy the global. Signed-off-by: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
This commit is contained in:
parent
bec2bcddd8
commit
268e8373ae
6 changed files with 521 additions and 50 deletions
|
|
@ -66,6 +66,7 @@ struct display {
|
|||
* filled. */
|
||||
struct client {
|
||||
struct wl_display *wl_display;
|
||||
struct wl_fixes *wl_fixes;
|
||||
struct test_compositor *tc;
|
||||
|
||||
atomic_bool display_stopped;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue