XSetEventQueueOwner man page
XSetEventQueueOwner — set event queue owner on a shared Xlib/XCB connection
void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner);
Specifies the connection to the X server.
Specifies the event queue ownership:
- XlibOwnsEventQueue (default)
Xlib owns the event queue. Use the Xlib event-handling functions. Do not call the XCB event-handling functions.
XCB owns the event queue. Use the XCB event-handling functions. Do not call the Xlib event-handling functions.
While a client using Xlib/XCB can issue requests and handle their replies or errors with either Xlib or XCB, only one can own and handle the event queue. By default, Xlib must own the event queue, for compatibility with legacy Xlib clients. Clients can call XSetEventQueueOwner immediately after XOpenDisplay to let XCB own the event queue instead. Clients may not call XSetEventQueueOwner at any other time, as this will potentially lose responses.
Xlib - C Language X Interface