[Live-devel] bug in BasicTaskScheduler.cpp ?
Ross Finlayson
finlayson at live555.com
Wed Nov 12 04:47:23 PST 2008
Ahh..., now that you've explained your problem once again, I now
understand the issue: The alarm handler is (in your case) causing
"fReadSet" to be modified, so that it no longer accurately reflects
the set of readable sockets that had been previously passed to
"select()", and produced (as "readSet") as a result of this
"select()" call.
We ran into a similar situation a few years ago, when we were calling
multiple event handlers (in a loop) during each call to
"SingleStep()" - and that's why we changed the code then to call only
one event handler at a time from "SingleStep()".
I hadn't anticipated that an alarm handler might also cause a similar
problem - but in your case, that's wha's happening.
Your proposed solution - moving the call to "handleAlarm()" after the
call to the event handler - should solve the problem. This will be
fixed in the next release of the software. Thanks for tracking down
this problem.
--
Ross Finlayson
Live Networks, Inc.
http://www.live555.com/
More information about the live-devel
mailing list