On 29 Aug 2007, at 18:10, Andre Garzia wrote:
Hi Andre
tricky newbie question here. I have a handler which is a looper. It
will
loop downloading files from a queue. It uses a line:
wait while lCurrentFileStatus is empty with messages
to let the handler block (but not the application) till the
download is
complete or blocked. Tricky thing is, if you simply unplug the network
during the FTP file transfer, revolution is giving no error, it
waits and
blocks forever until you abort with CMD+. when it promptly sends
the expect
"error" message back to the handler.
I don't exactly follow the details of your problem, but I'm guessing
this is a general gotcha when using libraries that use "wait ... with
messages" or "wait for messages" to implement asynchronous behaviour.
As you can imagine, libUrl is full of this stuff.
When you implement a sequence of "wait ... with messages", they have
to "unblock" in the reverse order they were used. So assuming you
made a number of libUrl calls (vial load url, for example), and then
used the above line, the "waits" inside libUrl won't unblock until
the above wait unblocks. It's easy to get into an eternal wait. The
general rule is not to use "waits" of any kind while a library (or
any other routine) that uses asynchronous "waits" is running.
Possible ways to avoid using "waits".
-- rely on the callback message of "load url" to set things
-- use "send ... in ...."
-- use script-blocking calls (get url)
Sorry if I've missed the point entirely. :-)
Cheers
Dave
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution