Duplicate simultaneous calls to same handler
Dave Cragg
dave.cragg at lacscentre.co.uk
Fri Jan 23 07:03:32 EST 2015
> On 23 Jan 2015, at 03:26, J. Landman Gay <jacque at hyperactivesw.com> wrote:
>
> Suppose I have a long handler that includes a few "wait with messages" so that users can continue interacting with the stack while it runs. The user does something that calls the long handler while it is still running from a previous instance. Assume there is no flag in the script to prevent that.
>
> Does the engine queue the second call until the long handler finishes, and then send the message from the second call (serial responses)?
>
> Or does the engine run two instances of the long handler simultaneously? If so, what happens to the values of the variables?
>
> Or something else?
One issue might be the nesting of the "waits". It’s a while since I’ve done this, but I think the waits need to be released in reverse order of how they were applied. So if you run the handler three times, the first and second calls won’t return until the "wait" in the third call has cleared. See if the following script in a button does what you would expect when you click it three times in succession (less than 5 seconds between clicks).
local lvCount = 0
on mouseUp
add 1 to lvCount
put 5 into tTime
put "start " & lvCount & cr after field 1
testHandler tTime, lvCount
end mouseUp
on testHandler pSecs, pCount
wait pSecs seconds with messages
put "end " & pCount & cr after field 1
end testHandler
Cheers
Dave Cragg
More information about the use-livecode
mailing list