Weird dispatch ordering of display events

Alexander Larsson alexl at redhat.com
Tue Apr 21 02:17:17 PDT 2015


I just spent some time debugging the wrong thing due to a weird change
in wayland 1.5. A new queue was introduced for the display itself,
handling things like delete_id. This queue is always dispatched,
independent of what other queues are dispatched.

However, it is always dispatched *before* the regular queue. This can
look pretty weird in the client side WAYLAND_DEBUG output, because if
you do an operation like bind()+display_roundtrip, you will see the
delete_id for the roundtrip callback before you see any results from the
bind.

This doesn't seem to be a problem in practice, because we resolve the
ids at event queue time, not dispatch time, so the events dispatch to
the right place anyway, but it is very confusing when debugging.

Maybe we can move the dispatching of the display queue to after
dispatching the regular queue in wayland-client.c:dispatch_queue(), to
make this a bit less confusing?

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
       alexl at redhat.com            alexander.larsson at gmail.com 
He's a Nobel prize-winning neurotic dwarf with a winning smile and a way 
with the ladies. She's a radical insomniac bounty hunter who inherited a 
spooky stately manor from her late maiden aunt. They fight crime! 



More information about the wayland-devel mailing list