server: add wl_global_remove

This commit adds a new wl_global_remove function that just sends a global
remove 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 11 seconds (queued for 6 seconds)
Status Job ID Name Coverage
passed #435501