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