[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: really dumb widget question

davidf@dfanning.com (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.