<div dir="ltr"><div><div><div><div><div><div><div><div>Well, both the library and my own code.<br><br></div>In the main "event" loop of the server, I call libwebsocket_callback_on_writable_all_protocol() in order to write all pending data.<br>

<br></div>Let's suppose I have 10 clients connected:<br></div>1. An event occurs and I want to send something to client A.<br></div>2. The job is done, but the client is still connected.<br></div>3. An event occurs and I want to send something to client B.<br>

<br></div>Since libwebsocket_callback_on_writable_all_protocol() 
calls the callback functions for all descriptors, it means the callback 
function for the client A is still being called.<br><br></div>Moreover, 
don't we have a way to have only one blocking function (i.e. wrapper for
 select() system call, both for read and write), instead of calling both
 libwebsocket_callback_on_writable_all_protocol() and libwebsocket_service() ?<br>
<br></div>Thanks</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-22 3:19 GMT+02:00 Andy Green <span dir="ltr"><<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
<br>
On 22 April 2014 10:08:54 GMT+09:00, "Julio A. Becerra" <<a href="mailto:julioabg@gmail.com">julioabg@gmail.com</a>> wrote:<br>
>Thanks for the answer!<br>
><br>
>Well, let's say that a client is connected to my libwebsockets server.<br>
>When<br>
>some event occurs, I want to send (write) something to this client, so<br>
>I<br>
>request the callback on writable.<br>
><br>
>When the job is done (everything is sent), I do not want to close the<br>
>connection, I want the client to keep connected. But my callback<br>
<br>
</div>Yes it's normal, you should send your last thing and then not ask for a callback on writeable. ¬†Almost 0 cpu will be used in that case.<br>
<div class=""><br>
>function<br>
>is still being continuously called because I cannot find a way to<br>
>remove<br>
>this request.<br>
<br>
</div>Who is doing the request to callback on writeable in that case? ¬†Something in the library or your code?<br>
<span class="HOEnZb"><font color="#888888"><br>
-Andy<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
>Hope my explanation is clear enough. In short: the client is always<br>
>connected, and I want to request the callback on writeable at my<br>
>convenience... so I need a way to remove the request.<br>
><br>
>Thanks again!<br>
><br>
><br>
><br>
>2014-04-22 2:59 GMT+02:00 Andy Green <<a href="mailto:andy@warmcat.com">andy@warmcat.com</a>>:<br>
><br>
>><br>
>><br>
>> On 22 April 2014 09:39:29 GMT+09:00, "Julio A. Becerra" <<br>
>> <a href="mailto:julioabg@gmail.com">julioabg@gmail.com</a>> wrote:<br>
>> >I am new to libwebsockets and I have a question I couldn't solve<br>
>yet.<br>
>> ><br>
>> >Since we have to call libwebsocket_callback_on_writable in order to<br>
>> >request<br>
>> >a callback when the socket is able to be written, is it possible to<br>
>> >remove<br>
>> >this request when we don't need to write on the socket for a while?<br>
>> >I.e.,<br>
>> >saving CPU cycles.<br>
>> ><br>
>> >I guess there should be a trivial way to do it, besides implementing<br>
>> >your<br>
>> >own custom functions.<br>
>><br>
>> Sorry not sure I get your point.<br>
>><br>
>> If you do not request the callback when writeable, no cpu cycles will<br>
>be<br>
>> burned.<br>
>><br>
>> When something happens that you want to write something, only call it<br>
>then<br>
>> to get that job done.<br>
>><br>
>> There's no need to keep calling it forever when there's nothing to<br>
>send.<br>
>><br>
>> 'Andy<br>
>><br>
>> ><br>
>><br>
>>------------------------------------------------------------------------<br>
>> ><br>
>> >_______________________________________________<br>
>> >Libwebsockets mailing list<br>
>> ><a href="mailto:Libwebsockets@ml.libwebsockets.org">Libwebsockets@ml.libwebsockets.org</a><br>
>> ><a href="http://ml.libwebsockets.org/mailman/listinfo/libwebsockets" target="_blank">http://ml.libwebsockets.org/mailman/listinfo/libwebsockets</a><br>
>><br>
>><br>
<br>
</div></div></blockquote></div><br></div>