[Xcb] [Bug 26545] xcb_io.c: extension error handler is not called

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Apr 13 13:34:59 PDT 2010


Jamey Sharp <jamey at minilop.net> changed:

           What    |Removed                     |Added
             Status|NEW                         |ASSIGNED

--- Comment #4 from Jamey Sharp <jamey at minilop.net> 2010-04-13 13:34:58 PDT ---
Perfect, thanks! I've pushed a fix for the bug you've observed, though there's
a little more work to do.

Before I explain that: I found what looks like a long-standing bug in Xlib, or
at least a misfeature. Try editing your test program to call XNextEvent before
XCloseDisplay. You'll find that even Xlib --without-xcb calls _XError then.

As far as I can tell, Xlib only consulted handlers set with XESetError for
errors seen by _XReply--not when looking for events, or waiting to be able to
flush the output queue.

I've just gone to a tiny bit of trouble to reproduce that odd behavior in Xlib
built --with-xcb. If that's not desirable, it would be nice to remove the extra
code that implements it. :-)

Now, I can't close the bug yet, because there are two cases where Xlib built
--with-xcb still won't consult with the extension error handlers: for requests
issued while an async_handler is queued, and for connections where
XSetEventQueueOwner has been used to let XCB do all event handling. (This is
the "if(req && xcb_poll_for_reply..." case in process_responses.)

I can fix those cases trivially, but supporting the above odd behavior at the
same time requires some refactoring.

Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the Xcb mailing list