Fix nasty bug in tty interrupt code. The symptom of the bug was:
authorChris Hanson <org/chris-hanson/cph>
Fri, 10 Jun 1988 07:58:04 +0000 (07:58 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 10 Jun 1988 07:58:04 +0000 (07:58 +0000)
commitd6e3b39e1303da0c771f76d8be89baab5909221c
tree3a994220219f1fe5c1b02b168b5aa177c7cfc6b2
parent887264cc389d6e3b5d0127fb17368c0e6a211080
Fix nasty bug in tty interrupt code.  The symptom of the bug was:
typing ^G while the microcode was in `TYI_Immediate' caused the next
read from the tty to get EOF; subsequently Scheme signalled TERM_EOF.
The problem was that there was local storage in `TYI_Immediate', which
contained trash after the interrupt performed a `longjmp' back into
the procedure.  According to the definition of `setjmp', it is illegal
to depend on such local storage.  We are unlucky in that only a little
bit of the local storage was affected so it took a long time to notice
this problem.

This was fixed by introducing a fluid-binding mechanism to allocate
and deallocate local state.  There may be a problem with the
interaction between `longjmp' and this mechanism.  If we `longjmp'
past the deallocation routine the world will be messed up.
v7/src/microcode/version.h
v8/src/microcode/version.h