<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Hi Uli,</div><div class="gmail_quote"><br></div><div class="gmail_quote">2014-11-05 20:16 GMT-02:00 Uli Schlachter <span dir="ltr"><<a href="mailto:psychon@znc.in" target="_blank">psychon@znc.in</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi,<br>
<br>
Am 31.10.2014 um 14:12 schrieb Laércio de Sousa:<br>
<span class="">> +    case XCB_CONN_CLOSED_REQ_LEN_EXCEED:<br>
> +        xf86DrvMsg(scrnIndex,<br>
> +                   X_ERROR,<br>
> +                   "Connection to host X server closed: too many requests.\n");<br>
> +        return TRUE;<br>
<br>
<br>
</span>This isn't a "too many requests" error, this is "something tried to send a<br>
single request larger than the supported maximum request length" (Think:<br>
"Something tried to send a request of size 1 GiB"). Or, to quote xcb.h:<br>
<br>
 /** Connection closed, exceeding request length that server accepts. */<br>
 #define XCB_CONN_CLOSED_REQ_LEN_EXCEED 4<br></blockquote><div><br></div><div>Fixed. Thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
[...]<br>
<span class="">> +static void<br>
> +_NestedClientSetWindowTitle(NestedClientPrivatePtr pPriv,<br>
> +                            const char *extra_text)<br>
> +{<br>
</span>[...]<br>
> +    xcb_flush(pPriv->conn);<br>
> +}<br>
[...]<br>
<span class="">> +static Bool<br>
> +_NestedClientHostXInit(NestedClientPrivatePtr pPriv)<br>
> +{<br>
</span>[...]<br>
> +    xcb_flush(pPriv->conn);<br>
> +}<br>
[...]<br>
<br>
What's your strategy for placing calls to xcb_flush()? I'd like to see each<br>
xcb_flush() having a comment explaining why it is needed.<br>
<br>
E.g. _NestedClientSetWindowTitle() calls xcb_flush(), but its only caller,<br>
_NestedClientCreateWindow() does not flush. I can't see why a flush would be<br>
required between setting a window title and mapping the window.<br>
<br>
My preferred solution would be to remove all these calls to xcb_flush().<br>
Instead, "something in the event loop" should flush. For example, you could<br>
place a call to xcb_flush() at the end of NestedClientCheckEvents() and remove<br>
all other calls (no idea if this actually works, I don't know the code well enough).<br></blockquote><div><br></div><div>I've followed your suggestion, putting a single xcb_flush() call at the end of NestedClientCheckEvents(), and it works pretty well. Thanks!</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">
> +void<br>
> +NestedClientCheckEvents(NestedClientPrivatePtr pPriv)<br>
> +{<br>
> +    xcb_generic_event_t *ev;<br>
> +<br>
> +    while (TRUE)<br>
> +    {<br>
> +        ev = xcb_poll_for_event(pPriv->conn);<br>
> +<br>
> +        if (!ev)<br>
> +        {<br>
> +            if (xcb_connection_has_error(pPriv->conn))<br>
> +                exit(1);<br>
</span>[...]<br>
<br>
Really? Doesn't this mean "when something goes wrong, we will silently exit<br>
without any error message"?<br></blockquote><div><br></div><div>Fixed. Thanks!</div><div>I've also added a new handle for "delete window" event (i.e., if the user clicks on close button at nested Xorg window). I'll submit a v2 of my patch series right now. </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Cheers,<br>
Uli<br>
<span class=""><font color="#888888">--<br>
"Why make things difficult, when it is possible to make them cryptic<br>
and totally illogical, with just a little bit more effort?" -- A. P. J.<br>
</font></span></blockquote></div><br>Thank you very much!<br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><b>Laércio de Sousa</b><br></div><div style="text-align:center"><div style="text-align:left"><i>Orientador de Informática</i></div><div style="text-align:left"><u>Escola Municipal "Professor Eulálio Gruppi"</u></div><div style="text-align:left"><i>Rua Ismael da Silva Mello, 559, Mogi Moderno</i></div><i><div style="text-align:left"><i>Mogi das Cruzes - SP</i></div><div style="text-align:left"><i>CEP 08717-390</i></div></i></div><div><span style="font-family:arial;font-size:small">Telefone: (11) 4726-8313</span></div></div></div>
</div></div>