[Xcb] socket handoff problems
Barton C Massey
bart at cs.pdx.edu
Fri Jan 16 01:32:39 PST 2009
In message <194f62550901150858t1d5744e1iee4c25ed3c3dd378 at mail.gmail.com> you wrote:
> I still was not able to resolve the problems I experience with
> socket-handoff, I already wrote an Email about that about two weeks
> ago.
I think Jamey and Josh are probably the only people who
understand the new handoff code well enough to help you with
this, so I've been waiting for them to respond.
> I've created a simple test-case which basically only renders
> rectangles mixing the XRender API and self-generated protocol.
Awesome. I forget: is the whole test code somewhere where
we can look at it?
> 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);
> }
I'm confused. Once you've taken over the socket, don't you
want to do the write() yourself instead of asking xcb to do
it with xcb_writev()? Or is my understanding of the handoff
process flawed? I assume you give the socket back when
you're done?
> The problem is completly halting progress of the open-source program I
> am working on: http://78.31.67.79:8080/jxrender/
> 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 I can't be of more help.
Bart
More information about the Xcb
mailing list