Change this code to use the new `clear-interrupts!' primitive to
authorChris Hanson <org/chris-hanson/cph>
Fri, 21 Oct 1988 00:18:13 +0000 (00:18 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 21 Oct 1988 00:18:13 +0000 (00:18 +0000)
disable interrupt bits when the interrupt handlers are invoked.

v7/src/runtime/intrpt.scm

index b891f2dbee3b17c3059df2963da9f3b5895964ce..3e5bc683509f17d8248dddc274f09f6744a55fa6 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/intrpt.scm,v 14.2 1988/06/16 06:31:53 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/intrpt.scm,v 14.3 1988/10/21 00:18:13 cph Rel $
 
 Copyright (c) 1988 Massachusetts Institute of Technology
 
@@ -70,10 +70,11 @@ MIT in each case. |#
   (install))
 
 (define-primitives
-  (setup-timer-interrupt 2)
-  get-next-interrupt-character
+  (clear-interrupts! 1)
   check-and-clean-up-input-channel
-  set-fixed-objects-vector!)
+  get-next-interrupt-character
+  set-fixed-objects-vector!
+  (setup-timer-interrupt 2))
 
 (define-integrable stack-overflow-slot 0)
 (define-integrable gc-slot 2)
@@ -89,6 +90,7 @@ MIT in each case. |#
 
 (define (timer-interrupt-handler interrupt-code interrupt-enables)
   interrupt-code interrupt-enables
+  (clear-interrupts! interrupt-bit/timer)
   (timer-interrupt))
 
 (define timer-interrupt)
@@ -98,6 +100,7 @@ MIT in each case. |#
 
 (define (suspend-interrupt-handler interrupt-code interrupt-enables)
   interrupt-code interrupt-enables
+  (clear-interrupts! interrupt-bit/suspend)
   (bind-condition-handler '() (lambda (condition) condition (%exit))
     (lambda ()
       (if (not (disk-save (merge-pathnames (string->pathname "scheme_suspend")
@@ -119,6 +122,7 @@ MIT in each case. |#
 
 (define (external-interrupt-handler interrupt-code interrupt-enables)
   interrupt-code
+  (clear-interrupts! interrupt-bit/kbd)
   (external-interrupt (get-next-interrupt-character) interrupt-enables))
 
 (define (with-external-interrupts-handler handler thunk)