[Xcb] [PATCH] xcb_disconnect: call shutdown() to force a disconnect

Julien Cristau jcristau at debian.org
Sun Aug 15 19:44:49 PDT 2010


On Sun, Aug 15, 2010 at 19:19:28 -0700, Aaron Plattner wrote:

> Fixes the X Test Suite's XCloseDisplay-6 test, which has this (admittedly
> ridiculous) behavior:
> 
>  1. Create a window w.
>  2. Open two display connections, dpy1, and dpy2.
>  3. Grab the server using dpy1.
>  4. Fork.
>  5 (child). XSetProperty on w using dpy2.
>  5 (parent). Verify that no event was recieved on dpy1.
>  6 (parent). XCloseDisplay(dpy1).
>  6 (child). Verify that an event was received on dpy2.
> 
> It was failing because at step 6 (child), the server had not actually ungrabbed
> yet because the file descriptor for dpy1 was still open in the child process.
> 
> Shutting down the socket during XCloseDisplay matches the behavior of non-XCB
> Xlib, which calls shutdown() from _X11TransSocketDisconnect.
> 
> Thanks to Julien Cristau for noticing this.
> 
> Signed-off-by: Aaron Plattner <aplattner at nvidia.com>

Reviewed-by: Julien Cristau <jcristau at debian.org>

Cheers,
Julien


More information about the Xcb mailing list