diff --git a/scsh/sighandlers.scm b/scsh/sighandlers.scm index bc05a13..66856ef 100644 --- a/scsh/sighandlers.scm +++ b/scsh/sighandlers.scm @@ -196,9 +196,11 @@ (define (deliver-interrupts) (let lp ((last ((structure-ref sigevents most-recent-sigevent)))) - (let ((event ((structure-ref sigevents next-sigevent-set) - last full-interrupt-set))) - (call-interrupt-handler ((structure-ref sigevents sigevent-type) event)) + (let* ((event ((structure-ref sigevents next-sigevent-set) + last full-interrupt-set)) + (interrupt ((structure-ref sigevents sigevent-type) event))) + (if (interrupt-enabled? interrupt (enabled-interrupts)) + (call-interrupt-handler interrupt)) (lp event)))) ;;; I am ashamed to say the 33 below is completely bogus.