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