On Fri, Apr 2, 2010 at 1:10 AM, Ross Finlayson <span dir="ltr">&lt;<a href="mailto:finlayson@live555.com">finlayson@live555.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I personally find your disdain for threads antiquated and naive<br>
</blockquote>
<br></div>
This shows a lack of understanding.  It&#39;s like saying that the designers of a bullet train have a &quot;disdain&quot; for air transportation, or conversely that the designers of an aircraft have a &quot;disdain&quot; for rail transport.  On the contrary.  We are talking about two completely different computation models, each with their pros and cons.<br>

<br>
I have been programming with threads since the mid 1980s - but for the LIVE555 libraries, I chose a single-threaded event-driven model instead.  This works well for the type of applications that these libraries are typically used for, especially given that lots of inexperienced programmers (far more than I had originally anticipated, actually) are using the software.<br>

<br>
If anyone is interested in this topic, I encourage them to view Professor John Ousterhout&#39;s slide presentation: <a href="http://www.softpanorama.org/People/Ousterhout/Threads/tsld001.htm" target="_blank">http://www.softpanorama.org/People/Ousterhout/Threads/tsld001.htm</a> (Personally, I wouldn&#39;t state the conclusion quite as strongly as he does, but - as a very experienced threads programmer myself - I agree with the general argument.)</blockquote>
<div><br>I&#39;d buy this.  But I think the library itself must run the way the FAQ mentions; otherwise, it is seriously problematic to use in any realistic manner.  It just makes sense to run one RTSPServer or RTSPClient per-thread with its own event loop.  The truth of the matter is: the rest of the world uses threads, and I can count the number of projects I participate in that use an eventing model on one hand (on one finger, actually), and almost every media API I use besides this one makes heavy use of threads.  Love threads or hate them, it is often tricky to reconcile this disparity. <br>
<br>That said, I actually prefer the Live555 model for threading because it makes sense always to have a dedicated thread servicing the network.  (doing work on your network thread, besides servicing the network, is a bad idea)  But if I had to put multiple clients on a single thread...I&#39;d basically be screwed.  That doesn&#39;t mesh well with any decent media framework I can think of.<br>
<br></div></div><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">Possibly, but remember that the &quot;OP&quot; used a &quot;@<a href="http://gmail.com/" target="_blank">gmail.com</a>&quot; address, which tags him as a noob 
(absence strong evidence to the contrary :-).  Unfortunately, I&#39;ve found
 that such people frequently do not read the FAQ.<br></blockquote><div><br>Yeah....we&#39;re probably not going to agree on that one.<br></div>