Wait 0 doesn't
Dar Scott
dsc at swcp.com
Mon Apr 28 20:12:00 EDT 2003
On Monday, April 28, 2003, at 07:05 AM, Jim Hurley wrote:
> This will be of little concern to most, but for me it made a big
> difference.
I tried this on OS X 10.2.5 Revolution 2.0 B2.5:
on mouseup
put the long seconds into a
put the long seconds into b
wait 0 seconds
put the long seconds into c
wait 0 milliseconds
put the long seconds into d
wait 0 ticks
put the long seconds into e
put (c-b) & " " & (d-c) & " " & (e-d) into field "report"
end mouseup
I got results like this:
0.000708 0.000084 0.000075
There are high outliers, of course, so you need to click the button
several times to make sure the values make sense and look consistent.
With a delay of .7 ms or greater the results are about the same. The
seconds delay seems to have a minimum. Perhaps this is related to
arithmetic.
(I had this vague notion that everything was converted to seconds
underneath, but this seems to suggest otherwise.)
I also modified this to allow testing on XP, but I was not able to see
a similar difference in "wait 0 seconds" on XP.
> Of course it is easy to see why the compiler is not prepared for the
> fool who would program a wait of 0 milliseconds.
Zero is a special case that might come up in a general situation. It
should be handled well. Since the TD for "wait" does not specify the
resolution or the minimum delay, it is hard to way what well means
here. My concern in surprises like this is that they may be indicative
of other problems.
There might also be a reason for one to explicitly use zero. One might
want to "wait 0 with messages" to allow messages to be processed. This
does not work with events (such as a click), though; a nonzero wait is
required for those.
Dar Scott
More information about the use-livecode
mailing list