[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: really dumb widget question
firstname.lastname@example.org (David Fanning) writes:
> > When IDL is stopped within a procedure, a non-blocking widget will
> > still listen to events. But it won't act on them. Why not? Is there
> > any way to make it act on them?
> I presume because STOP means STOP. If it meant MOSTLY STOP,
> I expect RSI would hear about it. :-)
> I would try .CONTINUE to get them going again.
Well, I did know that much. But as I noted, you have to wait until
returning to the main level. (Or is it just leaving the procedure with
the STOP? Didn't test.) That isn't always what I want.
Say you write two versions of a procedure. One takes user input from
the command line, the other takes it from a non-blocking widget. If
you stop at a certain point and need to use the procedure before going
on, you can use the command-line version. But the GUI version is
useless, unless you rewrite it as a blocking widget.
Non-blocking widgets introduce parallel threads of execution to an
environment that doesn't otherwise use threads. I would naively
expect a STOP to stop the thread it's in, but apparently it stops all
of them--except for the one that _records_ widget events for later
processing. I'm basically wondering if one thread can tell another
thread to go ahead and execute.