As you all know (because you've all read the FAQ :-), the LIVE555 libraries can 
be called from multiple threads, although only if each thread uses its own 
"TaskScheduler" and "UsageEnvironment".  Even this, however, may not be totally 
safe, because of the possibility that the LIVE555 libraries, and/or your own 
code, may call system library functions that themselves are not 'thread safe'.

The VLC developers have identified a handful of such system library functions 
that are currently used the LIVE555 library code, and I am currently going 
through the code to remove/replace them.

The first such library function is "inet_ntoa()" (which, in our code, we 
renamed "our_inet_ntoa()").  I have just released a new version (2011.11.26) of 
the "LIVE555 Streaming Media" code that removes calls to this function.

In its place is a new class "AddressString" - defined in 
"groupsock/include/NetAddress.hh".  For example, now, in the code, instead of 
calling
      our_inet_addr(addr)
we now call
      AddressString(addr).val()

If your own code happens to use multiple threads, you may wish to consider 
replacing any calls to "inet_ntoa()" with this new mechanism.

(A note to the VLC developers: This new release removes the need for the first, 
and largest of your 'LIVE555 patches'.  I hope to do the same for your other 
patches also.)


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/

_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to