client/server: add delete_id request as a fake sync

Add a delete_id request so that the server can reap
zombies once the client acks the deletion.  As a
result, the wl_map zombie_list would only be used
for clients that do not have this change.

To keep compatibility, the delete_id request is
dressed as a sync request, but carries a server
object ID instead.

Update tests to compensate for additional handshake
that sets up delete_id requests.

Signed-off-by: Jonathan Leivent <jleivent@comcast.net>
This commit is contained in:
Jonathan Leivent 2024-01-26 19:37:55 -05:00
parent 3cd9ca8a65
commit aff270293b
6 changed files with 185 additions and 7 deletions

View file

@ -59,6 +59,13 @@ struct message {
const char *message_name;
int args_count;
} messages[] = {
{ /* this is the WAYLAND_SERVER_DELETE_ID_HANDSHAKE message */
.type = WL_PROTOCOL_LOGGER_EVENT,
.class = "wl_display",
.opcode = 1,
.message_name = "delete_id",
.args_count = 1,
},
{
.type = WL_PROTOCOL_LOGGER_REQUEST,
.class = "wl_display",