> On Fri, Aug 26, 2016 at 12:07:45PM +0200, Ross Finlayson wrote:
>> Yes, you are correct here.  Fortunately, there is an easy fix (which I’ll 
>> add to the code in the near future): Set “fNext” to NULL at the start of the 
>> handler function (“sendNext()”).  Ditto for the other places in the code 
>> where the same thing is done.
> 
> That's exactly what my patch does.

No, it’s not.  Your patch does a whole lot more (all of the “afterGetting()” 
changes).  There’s no way I’m going to apply such a large patch to the code 
base (especially because, as I noted before, the proper long term solution 
(replacing the “fNextTask” mechanism entirely) will be a non-trivial change as 
well).


>> You absolutely MUST NOT try to access a “TaskScheduler” (or any other 
>> LIVE555 object) from more than one thread.  As explained in the FAQ, the 
>> LIVE555 code was designed to be run as a single-threaded event loop.  (It 
>> *is* possible, however, to run LIVE555 code from more than one thread, if 
>> each thread uses its own “UsageEnvironment” and “TaskScheduler” object - 
>> again, as explained in the FAQ.)
> 
> Well, that FAQ entry is slightly wrong here. It really should say
> BasicTaskScheduler instead of TaskScheduler. If a downstream of
> liveMedia implements a subclass of TaskScheduler in a thread-safe way
> (and that includes never accessing other live555 objects from other
> threads), then accessing such a TaskScheduler subclass from another
> thread is indeed safe.

Well, maybe - but I don’t see the point of having two or more threads share a 
single (special, thread-safe) “TaskScheduler” (subclass) object, while 
(somehow) making sure that the threads don't share access to any other LIVE555 
object.  Why not just have the threads use different “TaskScheduler” (and 
“UsageEnvironment”) objects - something that’s much safer?  But anyway, if you 
want to go the route of writing and using your own single (special, 
thread-safe) “TaskScheduler” (subclass) object, you’re on your own.  That’s not 
something that I’m going to endorse.


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



_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to