How to handle a "wait for file" situation

Richard Miller wow at together.net
Tue Jun 9 17:49:33 EDT 2009


Thanks, Mark. I'll continue with the scripting as it has been, which is 
basically the same as what you have written. I appreciate you 
documenting the effect on the CPU.

Richard



Mark Smith wrote:
> 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
>
> _______________________________________________
> 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