Skip to content
  • Josh Triplett's avatar
    Support handing off socket write permission to external code. · 67438753
    Josh Triplett authored and Jamey Sharp's avatar Jamey Sharp committed
    Libraries like Xlib, some XCB language bindings, and potentially others
    have a common problem: they want to share the X connection with XCB. This
    requires coordination of request sequence numbers.  Previously, XCB had an
    Xlib-specific lock, and allowed Xlib to block XCB from making requests.
    Now we've replaced that lock with a handoff mechanism, xcb_take_socket,
    allowing external code to ask XCB for permission to take over the write
    side of the socket and send raw data with xcb_writev.  The caller of
    xcb_take_socket must supply a callback which XCB can call when it wants
    the write side of the socket back to make a request.  This callback
    synchronizes with the external socket owner, flushes any output queues if
    appropriate, and then returns the sequence number of the last request sent
    over the socket.
    
    Commit by Josh Triplett and Jamey Sharp.
    Handoff mechanism inspired by Keith Packard.
    67438753