[Xcb] libxcb/libX11 deadlocking and asserting in multi-threaded use

Peter Harris git at peter.is-a-geek.org
Sun Mar 21 05:38:58 PDT 2010


On Sun, Mar 21, 2010 at 6:48 AM, Nicholas Allen wrote:
> I completed the conversion to XCB ;-)

Hooray!

> Unfortunately, the deadlocking problem is still there. It seems to
> happen less frequently now but is still a problem.

Dang.

> What's the best way to debug this and get familiar with the XCB code?
> Attaching to the process with a debugger and adding trace statements
> shows that xcb_wait_for_event never returns (so it seems to be the same
> problem as XNextEvent never returning).

Generally, when this happens to me, it is because I forgot to
xcb_flush before xcb_wait_for_event.

Wireshark can help you to discover if the X server even sends the
event you are waiting for. (Wireshark doesn't capture unix domain
sockets, so you'd have to enable TCP on your X server and set your
$DISPLAY appropriately.) Beyond that, maybe Jamey can help :-)

Peter Harris


More information about the Xcb mailing list