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