How to handle a "wait for file" situation
Mark Smith
lists at futilism.com
Tue Jun 9 14:56:41 EDT 2009
Jaque, I'm not sure this is right, these days.
On my mac laptop I just did this:
button in a new stack with a script:
on mouseUp
repeat 20
wait 1 second
end repeat
put "done"
end mouseUp
I then opened the Apple Activity Monitor, I could see Revolution
using 12% of cpu. Back to the stack, clicked the button. I saw
Revolution go up to 19% then quickly down to less than 0%. After 20
seconds, the message box appeared with "done", as expected. And I had
the quicktime player playing some music while this was happening.
So I can well believe that all processes that are to do with the
running engine will stop during a wait, but it doesn't seem to affect
anything else, and it would surely be a gigantic bug if it did, no?
Best,
Mark
On 9 Jun 2009, at 19:06, J. Landman Gay wrote:
> Mark Smith wrote:
>> Craig, you're quite right, and so is Jaque, but in this case, the
>> script is running as a cgi on a server, so has it's own exclusive
>> copy of the engine running it - so nothing else would be getting
>> held up.
>
> Actually, the wait command will stop everything until the wait is
> done, including all background processes. That means other copies
> of the Rev engine will also pause until the original script's wait
> is done. If a bunch of these scripts are all waiting at the same
> time, I could see a complete lockup happening.
>
> Here's what Scott Raney said about loops like that:
> "This loop uses 100% of the CPU time, regardless of the speed of
> the processor, bringing the system to its knees, causing poor
> feedback for your app, and making your system unresponsive to any
> other processes running on it."
>
> He also mentioned: Some of the processes that can slow down or stop
> when a script uses this kind of processor-intensive repeat loop
> are: file and printer sharing, HTTP/FTP servers, network management
> tools, and on UNIX systems (including Mac OS X), people telnetting
> in from other systems.
>
> A better approach while waiting for a file to appear is to use the
> "send in time" syntax to continually check for the file. When it
> becomes available, call a second handler or enter an "else if"
> clause that completes the processing.
>
> --
> Jacqueline Landman Gay | jacque at hyperactivesw.com
> HyperActive Software | http://www.hyperactivesw.com
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution
More information about the use-livecode
mailing list