From 8d862ffaed0aff23df606ec3550bb79c30554f28 Mon Sep 17 00:00:00 2001 From: Arthur Gleckler Date: Tue, 3 Sep 1991 22:56:52 +0000 Subject: [PATCH] CPH: Fix interrupt window in the timer interrupt routines that detect control-g under X. --- v7/src/edwin/xterm.scm | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/v7/src/edwin/xterm.scm b/v7/src/edwin/xterm.scm index 866bcb48b..2b48c8997 100644 --- a/v7/src/edwin/xterm.scm +++ b/v7/src/edwin/xterm.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/xterm.scm,v 1.21 1991/08/06 15:39:21 arthur Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/xterm.scm,v 1.22 1991/09/03 22:56:52 arthur Exp $ ;;; ;;; Copyright (c) 1989-91 Massachusetts Institute of Technology ;;; @@ -48,6 +48,7 @@ (declare (usual-integrations)) (define-primitives + (clear-interrupts! 1) (real-timer-clear 0) (real-timer-set 2) (x-open-display 1) @@ -490,10 +491,10 @@ (lambda () (receiver (lambda (thunk) - (dynamic-wind real-timer-clear + (dynamic-wind stop-timer-interrupt thunk start-timer-interrupt)))) - real-timer-clear))) + stop-timer-interrupt))) (define (set-x-timer-interval! interval) (if (not (or (false? interval) @@ -509,7 +510,11 @@ (define (start-timer-interrupt) (if timer-interval (real-timer-set timer-interval timer-interval) - (real-timer-clear))) + (stop-timer-interrupt))) + +(define (stop-timer-interrupt) + (real-timer-clear) + (clear-interrupts! interrupt-bit/timer)) (define (with-x-interrupts-enabled thunk) (bind-signal-interrupts? true thunk)) -- 2.25.1