wayland/src
Vlad Zahorodnii c048101ca9 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>
2026-03-24 13:45:00 +02:00
..
.gitignore ignore: Add *.dtd.embed 2016-03-10 22:24:20 -08:00
connection.c connection: Add a thread ID to WAYLAND_DEBUG output. 2025-09-15 14:45:53 +01:00
embed.py build: replace assembly embedding with Python script 2021-05-10 22:08:45 +00:00
event-loop.c event-loop: Use timespec utils instead of hand-rolling our own 2025-02-04 14:09:51 +00:00
meson.build build: Bump to meson version 0.64.0 2025-11-27 17:39:11 +02:00
scanner.c scanner: enforce frozen attribute 2026-03-05 12:00:35 +00:00
timespec-util.h timespec: Implement saturating timespec substraction 2025-02-04 14:09:51 +00:00
wayland-client-core.h client: add wl_display_dispatch_pending_single 2025-09-16 11:48:33 +03:00
wayland-client.c client: fix crash when creating proxies with no queue 2026-03-01 01:03:37 +00:00
wayland-client.h doc: Formalize file comment in wayland-client.h, wayland-server.h 2016-05-11 11:03:27 -07:00
wayland-os.c build: fix build and provide compat for OpenBSD 2024-02-21 15:46:41 +00:00
wayland-os.h shm: Add mmap+memmove fallback if mremap() does not exist 2021-09-10 11:35:54 +00:00
wayland-private.h connection: Add a function to parse WAYLAND_DEBUG tokens 2025-09-15 14:45:53 +01:00
wayland-server-core.h Add wl_fixes.ack_global_remove() 2026-03-24 13:45:00 +02:00
wayland-server-private.h Move wl_priv_signal to wayland-server-private.h 2019-11-06 08:24:14 -06:00
wayland-server.c Add wl_fixes.ack_global_remove() 2026-03-24 13:45:00 +02:00
wayland-server.h Put WL_DEPRECATED in front of the function declarations 2024-08-09 20:25:11 +00:00
wayland-shm.c shm: linkify function references in docs 2025-05-20 20:14:52 +00:00
wayland-util.c util: assert alloc is consistent with data in wl_array_add() 2026-03-03 11:31:53 +02:00
wayland-util.h connection: Do not busy-loop if a message exceeds the buffer size 2025-06-21 11:29:04 +00:00
wayland-version.h.in src: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-12 15:31:24 -07:00