[BUG] User interrupts no longer interrupt locked UI process

Ian Piumarta ian.piumarta at inria.fr
Fri Mar 26 05:10:33 UTC 2004


On 18 Mar 2004, at 21:30, Ned Konz wrote:

>> Note that I am *not* sure if that works on all VMs if used
>> with the event primitives so you may want to have a look at your VM 
>> sources
>> first to make sure it does signal the interrupt semaphore when it 
>> sees an
>> interrupt keydown event (rather than just stuffing it straight into 
>> the
>> event queue). I *think* it'll work but it's better to check first.
>
> I don't believe that it bothers to check in the Unix VM. Or in the Mac 
> VM:
>
> Sensor primSetInterruptKey: ($. asciiValue bitOr: 16r0800).
> Sensor installInterruptWatcher.
> 100000 timesRepeat: [ 3.15434345345 printString ].
>
> is still unbreakable on either platform.

If you start the Unix VM with "-noevents" it will check for the 
interrupt key code and, if pressed, set the pending flag and reset the 
check counter to zero (just like in the good old days).

This option will also turn off all event processing in the VM, 
reverting to the old "polled" mechanisms.  My image can cope with that, 
but it's probably a lot older than your image.  Caveat emptor...

FWIW, it's 2 lines of code to check for the interrupt key combination 
when pushing a keyboard event onto the queue in the VM.  (That check 
_was_ in there for a while and I only took it out because at some point 
something in the image changed and the input sensor became confused as 
to which input method it was supposed to be using, the result being I 
was getting two debuggers pop open for each interrupt -- one via the 
event, the other via interruptPending.)

Cheers,
Ian




More information about the Squeak-dev mailing list