Miller Puckette wrote:
... and to wade in, here's an idea I'm toying with: every 1000 or so bangs that until sends out, check the CPU clock. Each time more than a second elapses, go check the input buffer from the GUI, and execute it (so that mouse clicks would appear within the context of the until loop!) This would allow you to delete the offending until, assuming you know where it is.
Are there any other objects that run a loop like this that could potentially block GUI processing for a long period of time?
My first thought with this approach is that you would end up having to sprinkle this handling into the code for every object that could potentially have a problem like this. If this is the only one, then this certainly sounds like a simple approach.
Another idea: have a GUI item that interrupts Pd, causing the stack frame to be rudely dropped and all clocks to be unset.
Yikes. I personally would rather see an approach that simply ensures that the GUI input buffer gets serviced, such as your first proposal. I think that should be able to handle any situation that this proposal would help, but in a much less destructive manner. :)
-- Russell Bryant