> On 9 Jan 2016, at 2:20 am, Trevor DeVore <li...@mangomultimedia.com> wrote:
> 
>  start asynchronous block "processThing" with error callback

Background threads then. A while back we were discussing threading 
(http://forums.livecode.com/viewtopic.php?f=66&t=19569&hilit=+background&sid=b5e636e53ac539017fb945ef9529d824
 
<http://forums.livecode.com/viewtopic.php?f=66&t=19569&hilit=+background&sid=b5e636e53ac539017fb945ef9529d824>)
 and I proposed:

> How about there's two standard queues (foreground, background) with the 
> ability to create more as required. A queue would have a thread and it's own 
> pending messages with engine messages going to the foreground queue.
> 
> Maybe:
> 
> create queue <queue name>
> dispatch <commandName> to <objectReference> [with param1… n] [[in 
> {foreground|background|<queue name>}] with message <callback>]
> delete queue <queue name>
> 
> A queue might have it's own instance of the handlers to message but perhaps 
> we would need a sort of common script local which would be accessible from 
> all threads and a regular script local which isn't. In most cases there would 
> be no need to create a named queue but it might be helpful in some cases.

However, I don’t think background threads will actually resolve the issue at 
hand because we still have the blocking commands and waits but they are just on 
a different thread.

One thing that might work to avoid having multiple callbacks would be 
completion handler style blocks. This would be particularly helpful if their 
variable scope included the locals in the parent handler. This would also give 
us the choice of declaring a callback either inside or outside the current 
handler.

Using Mark’s example:

on processThing
 load url "..." with block pResultCode, pData, pError
   ---
 end block
end processThing

— OR

on processThing
 load url "..." with processThing2
end processThing

block processThing2 pResultCode, pData, pError
 --
end processThing2

Whether it would be feasible to mix in the queue idea with blocks for running 
scripts asynchronously I’m not sure but it’s probably a neater idea than my 
dispatch butchery. We would just need something like:

do processThing2 in background with tResultCode, tData, tError

Cheers

Monte 
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to