[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
|