server: add wl_global_unregister

This commit adds a new wl_global_unregister function that just sends a global
removal event without destroying it. See [1] for details.

Removing a global is racy, because clients have no way to acknowledge they
received the removal event. There's no way to fix this, since wl_registry is

It's possible to mitigate the issue by sending the removal event, waiting a
little and then destructing the global for real. The "wait a little" part is
compositor policy.

[1]: wayland/wayland#10

Signed-off-by: Simon Ser <>
1 job for global-unregister in 1 minute and 33 seconds (queued for 3 seconds)
Status Job ID Name Coverage
passed #435160