<p dir="ltr">Use threads! This will work ever so much easier and more reliably if you let the xcb code run in a separate thread that can block</p>
<br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 29, 2015, 10:36 Uli Schlachter <<a href="mailto:psychon@znc.in">psychon@znc.in</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
[...]<br>
> So my questions here are:<br>
><br>
> 1) Is this the correct way to read events and replies from the server?<br>
> I understand that if I call xcb_poll_for_event when the next response<br>
> is a reply, it will return a NULL. But I'm not sure if I will be able<br>
> to read the reply using xcb_poll_for_reply after that...<br>
<br>
XCB never throws away replies/events (unless you tell it to via<br>
xcb_discard_reply()). So yeah, you can just poll for reply after a poll for<br>
event wasn't successful.<br>
<br>
Actually, I guess first polling for replies makes more sense...<br>
<br>
> 2) I can not find any example of xcb_poll_for_reply on internet. Is<br>
> there any documentation about it? I'm not sure about how to implement<br>
> layer_nextReply, since in XCB there is no "generic" replies. (maybe<br>
> iterating a list of stored cookies doing the propper castings?)<br>
[...]<br>
<br>
I was surprised that there is no docs for it... Anyway, this is just<br>
xcb_wait_for_reply() without the waiting part. If no reply and no error was<br>
received yet, it will just return NULL.<br>
<br>
Note that you have to make sure that your requests are actually send out before<br>
there can be any reply for them (xcb_flush()). xcb_wait_for_reply()<br>
automatically flushes for you, so this might be easy to miss.<br>
<br>
Cheers,<br>
Uli<br>
--<br>
If you have to type the letters "A-E-S" into your source code, you're doing it<br>
wrong.<br>
_______________________________________________<br>
Xcb mailing list<br>
<a href="mailto:Xcb@lists.freedesktop.org" target="_blank">Xcb@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/xcb" rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/xcb</a></blockquote></div>