<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
Hi there,<br>
<br>
I think you're doing some 'utopic struggling' here...<br>
I've been using live555 within a multi-threaded context : it worked,
more or less, but I always saw my code as a dirty hack, and I was
glad to see the asynchronous API appear.<br>
I'll be on Ross' side on this one, because I respect his choices (I
don't mean I agree with all of them though ;-) )<br>
You can always make suggestions, but you shouldn't insist like that,
I'm afraid it's gonna rot into a sterile debate (or worse..)<br>
<br>
By the way, nothing prevents you from implementing your own fork,
with thread support (that would be a big work...)<br>
<br>
Best regards,<br>
Guillaume.<br>
<br>
<br>
Le 18/11/2010 00:18, Jeremy Noring a écrit :
<blockquote
cite="mid:AANLkTi=VeY5D2+3pYYdLkCssJhnGJJ4GbC5XSTOOr4YG@mail.gmail.com"
type="cite">
<div class="gmail_quote">On Wed, Nov 17, 2010 at 3:23 PM, Ross
Finlayson <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:finlayson@live555.com">finlayson@live555.com</a>></span>
wrote:<br>
<blockquote style="border-left: 1px solid rgb(204, 204, 204);
margin: 0px 0px 0px 0.8ex; padding-left: 1ex;"
class="gmail_quote">
<div>
<div>Well, I have to admire your stubbornness :-) Even
after having presented a perfect example of why that
statement is false, you continue to insist otherwise.</div>
</div>
</blockquote>
<div> </div>
<div>I take it back, I will belabor the point.</div>
<div> </div>
<div>Yes, this is "stubbornness," and no, you did not present a
"perfect example of why that statement [was] false." The
bottom line is yes, you can run Live555 in a threaded
environment (I've been doing it for over a year now) so long
as you have a dedicated thread for the event loop (your own
FAQ states this). And there are plenty more ways of
communicating changes to the event loop besides global
variables (in fact, doing so is just sloppy-bad code, in my
opinion; I struggled with some of Live555's crappy global
variables that made running multiple independent instances
with dedicated threads run in the same process space).</div>
<div> </div>
<div>Furthermore, there is _nothing_ wrong with setting a
read-only boolean variable that the event loop then
subsequently checks. There is almost zero functional
difference between this and your global variable option.
There's nothing stopping someone from doing it that way with
the change I proposed, and I think saving an additional NULL
check in exchange for potential threading woes isn't worth it
(if you're looking to optimize, I can point you towards about
a dozen things in your library that dwarf such a check).</div>
<div> </div>
<div>So fine, attribute it to "stubbornness," but again, the
patch I posted here has not only been tested but it _works_.
It does this in a threaded environment, which your own library
is completely compatibile with given a few pretty obvious
caveats (first and foremost, a dedicated thread for the event
loop).</div>
</div>
<pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
live-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:live-devel@lists.live555.com">live-devel@lists.live555.com</a>
<a class="moz-txt-link-freetext" href="http://lists.live555.com/mailman/listinfo/live-devel">http://lists.live555.com/mailman/listinfo/live-devel</a>
</pre>
</blockquote>
<br>
<br>
<div class="moz-signature">-- <br>
Guillaume FERRY<br>
Bertin Technologies<br>
Département Bertin Conseil<br>
Activité Traitement de l'Information et du Contenu<br>
<table>
<tbody>
<tr>
<td><i>Tél</i></td>
<td>01.39.30.62.09</td>
</tr>
<tr>
<td><i>Fax</i></td>
<td>01.39.30.62.45</td>
</tr>
<tr>
<td><i>Mail</i></td>
<td><a class="moz-txt-link-abbreviated" href="mailto:ferry@bertin.fr">ferry@bertin.fr</a></td>
</tr>
<tr>
<td><i>Web</i></td>
<td><a href="http://www.bertin.fr">www.bertin.fr</a></td>
</tr>
</tbody>
</table>
</div>
</body>
</html>