[Python-Dev] KeyboardInterrupt on Windows
Neal Norwitz
neal@metaslash.com
Fri, 30 May 2003 16:40:01 -0400
On Fri, May 30, 2003 at 04:35:53PM -0400, Guido van Rossum wrote:
> I received this problem report (Kurt is the IDLEFORK developer). Does
> anybody know what could be the matter here? What changed recently???
> while 1: pass
>
> doesn't respond to a KeyboardInterrupt on Python2.3b1 on either
> WinXP or W2K.
Could this be from the optimization Raymond did:
>>> def f():
... while 1: pass
>>> dis.dis(f)
2 0 SETUP_LOOP 12 (to 15)
3 JUMP_FORWARD 4 (to 10)
6 JUMP_IF_FALSE 4 (to 13)
9 POP_TOP
>> 10 JUMP_ABSOLUTE 10
>> 13 POP_TOP
14 POP_BLOCK
>> 15 LOAD_CONST 0 (None)
18 RETURN_VALUE
3 jumps to 10, 10 jumps to itself unless I'm reading this wrong.
See Python/compile.c::optimize_code (starting around line 339)
Neal