Ok, sounds promising. Thanks!
On 2009-02-17, at 14:11EST, André Bargull wrote:
Calling clearTimeout helps to reduce the bad effects, but it's still
not completely solved. So the CPU usage is still increasing over
time, but it requires more time to reach 100% CPU usage (let's say
no longer 1 minute, but 20-30 minutes, or so..). I'll try out the
Timer class.
On 2/17/2009 7:47 PM, P T Withington wrote:
Found in Adobe doc comment:
The following code demonstrates the behavior of the setTimeout
function.
If running this code with a Profiler and initiating the GC - the
instances remain in the memory,
which does not happen if uncommenting the manually-added
clearTimeout statement.
This was found due to memory leaks which encountered by using
setTimeout.
[flash.utils Package - Adobe® Flex™ 2 Language Reference](http://livedocs.adobe.com/flex/2/langref/flash/utils/package.html#setTimeout()
) So, perhaps there is a simple work-around we can make in the swf9
timer kernel?
On 2009-02-17, at 12:46EST, André Bargull wrote:
This is a proposal how to fix LPP-7763 ("LzTimer hangs the
system"). AFAIK, we need an API change to get around the flash
player issue.
Change 20090217-bargull-Ada by barg...@dell--p4--2-53 on
2009-02-17 18:25:23
in /home/Admin/src/svn/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk
Summary: add repeat counter to addTimer and resetTimer
New Features: LPP-7763
Bugs Fixed:
Technical Reviewer: ptw
QA Reviewer: (pending)
Doc Reviewer: (pending)
Documentation:
Release Notes:
Details:
Add a new feature to lz.Timer#addTimer and resetTimer to accept
the number of repetitions for the timer.
This helps to avoid an issue in swf9, where the flash player
needed more and more cpu resources.
A call looks like:
lz.Timer.addTimer(delegate, 1000, 10) -> execute the given
delegate 10 times in an interval of one second
Or: lz.Timer.addTimer(delegate, 1000, Infinity) -> execute the
given delegate infinite times in an interval of one second
The implementation relies on the fact that clearTimeout and
clearInterval are interchangeable in all runtimes.
Q: What should be the default value of "repeat": 0 or 1? Just
asked because in lz.animatorgroup the "repeat" attribute describes
that repeat = 1 means one execution, so that one repetition is
equal to one execution, at least in OpenLaszlo-terms ;-) Should we
be consistent to that implementation for the addTimer/resetTimer
repeat-argument?
Tests:
Files:
M WEB-INF/lps/lfc/services/LzTimer.lzs
Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20090217-bargull-Ada.tar