<div dir="ltr"><div>Depends on what you mean by "services the packets". Decoding and ACKing could probably work well in a socket read loop but dispatching the packet to the proper part of the simulation could incur many delays which can cause a lot of packet loss in the lower level operating system routines as the buffers are only so large and any excessive data is discarded. Putting them in a queue for another thread to service is a good compromise which tends to keep things working under most load conditions.</div>
<div><br></div>However, if your design seems to improve things under a wide range of operating conditions, feel free to submit a patch! But please don't expect it to be accepted as it may need a *lot* of testing to show it's benefit over the current implementation.<br>
<div><br><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Apr 25, 2014 at 7:45 PM, Matt Lehmann <span dir="ltr"><<a href="mailto:mattlehma@gmail.com" target="_blank">mattlehma@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">As of the last release, the algorithm for handling udp packets from clients is as so... </p>
<p dir="ltr">   Start an async read cycle on the socket, adding packets  to a blocking queue.<br>
   Also start a smart thread which waits on the queue and services the packets. </p>
<p dir="ltr">Wouldn't it be more efficient to use a single thread that waits on the socket by looping on a socket.poll call,  immediately servicing packets? </p>
<p dir="ltr">I have tried this locally and I really think it would improve efficiency.   If you want I can submit a patch. </p>
<p dir="ltr">Thanks</p><span class="HOEnZb"><font color="#888888">
<p dir="ltr">Matt</p>
</font></span><br>_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@opensimulator.org">Opensim-dev@opensimulator.org</a><br>
<a href="http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev" target="_blank">http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev</a><br>
<br></blockquote></div><br></div>