[Xcb] socket handoff problems

Clemens Eisserer linuxhippy at gmail.com
Thu Jan 15 08:58:38 PST 2009


I still was not able to resolve the problems I experience with
socket-handoff, I already wrote an Email about that about two weeks
I've created a simple test-case which basically only renders
rectangles mixing the XRender API and self-generated protocol.

When resizing the window, or switching focus between the test-case
window and another one, I often see the client blocking, waiting for
the XServer:

#0  0x00110416 in __kernel_vsyscall ()
#1  0x009885bd in ___newselect_nocancel () from /lib/libc.so.6
#2  0x00118035 in _xcb_conn_wait () from /opt/xorg/lib/libxcb.so.1
#3  0x0011a33a in xcb_wait_for_reply () from /opt/xorg/lib/libxcb.so.1
#4  0x00169078 in _XReply () from /opt/xorg/lib/libX11.so.6
#5  0x001627fb in _XPrivSyncFunction () from /opt/xorg/lib/libX11.so.6
#6  0x00242c42 in XRenderFillRectangle () from /opt/xorg/lib/libXrender.so.1
#7  0x08049115 in main ()

 All I do is basically:

    for(x=0; x < 1000; x++) {
        int flags = 0; uint64_t sent;
        xcb_take_socket(con, &return_socket, &flags, flags, &sent);

        struct iovec vect;
        vect.iov_base = buffer; //buffer contains 1000 XRenderFillRetcangles
        vect.iov_len = buffer_len;

        xcb_writev(con, &vect, 1, 1000);

return_socket does nothing for my testcase.

The problem is completly halting progress of the open-source program I
am working on:
Sorry that I bother you again with that issue, but I don't know C very
well and I am completly unexperienced with posix functions.
Please, could somebody take a look at it.

Sorry for all the traffic and thank you in advnace, Clemens
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xcb_handoff.c
Type: application/octet-stream
Size: 5421 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/xcb/attachments/20090115/c254770b/attachment.obj 

More information about the Xcb mailing list