On Thu, Apr 28, 2011 at 11:38:58PM -0700, John Gilmore wrote: > > An heartbeat is dispatched every 10ms, by design. Would be interesting > > to inspect further for the 0ms timedout poll. > > As has been done in the Linux kernel, could we switch this to > "tickless" operation, such that gnash delays until the script lets > us know that something will need to happen? Rather than waking > up every 10ms to ask ourselves, "Does anything need to happen?"
It won't be very easy to tell if we need to do something or not. Any actionscript object might become a MovieClip superclass of any depth level. Simply having an onEnterFrame member registered in such object would require to wakeup at SWF fps rate. Any non-stopped MovieClip containing control tags would also need to be called at SWF FPS rate. Currently any loader object (LoadVars, MovieClipLoader, XML loads) needs to check if any data is coming down. Sound needs to be feeded too, and video updated. So, answer is: we could "move toward" a somewhat reduced ticking, but it'll be a long way. I've been thinking for some time about having movie_root::advance (the current heartbeat entry point) return an indication about when to ring next. That might be a first step. It might return next SWF FPS boundary in absence of registered callbacks (timers, loads, sounds...) possibly reducing ticks from 10ms of delay to 83ms of delay (for the standard 12FPS movie). Such interface would then allow for improvements (ie: in presence of timers check for actual timers expiration time, in presence of streaming video/sound check the requested framerate etc). The effects of such a reduced "heartbeat" you may check by tweaking heartbeat frequency using the -d switch. --strk; () Free GIS & Flash consultant/developer /\ http://strk.keybit.net/services.html _______________________________________________ Gnash-dev mailing list [email protected] https://lists.gnu.org/mailman/listinfo/gnash-dev

