Check for process status changes before blocking. No longer need to
authorChris Hanson <org/chris-hanson/cph>
Fri, 10 Sep 1993 19:13:44 +0000 (19:13 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 10 Sep 1993 19:13:44 +0000 (19:13 +0000)
treat INTERRUPT as a possible process status change since the runtime
system has been modified to reliably produce the right result.

v7/src/edwin/xterm.scm

index 03229aa1c1af5e95b94d59790ea874f3f449b5c0..1d3cd7db834bf5ef12903642fbb9d4ceae83db4c 100644 (file)
@@ -1,6 +1,6 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: xterm.scm,v 1.45 1993/09/09 22:40:36 cph Exp $
+;;;    $Id: xterm.scm,v 1.46 1993/09/10 19:13:44 cph Exp $
 ;;;
 ;;;    Copyright (c) 1989-93 Massachusetts Institute of Technology
 ;;;
                ((process-output-available?)
                 (set-interrupt-enables! interrupt-mask)
                 event:process-output)
+               ((process-status-changes?)
+                (set-interrupt-enables! interrupt-mask)
+                event:process-status)
                (else
                 (let ((flag
                        (test-for-input-on-descriptor
                   (case flag
                     ((#F) #f)
                     ((PROCESS-STATUS-CHANGE) event:process-status)
-                    ((INTERRUPT)
-                     ;; Must independently check for this condition
-                     ;; because TEST-FOR-INPUT-ON-DESCRIPTOR can't
-                     ;; reliably produce the PROCESS-STATUS-CHANGE
-                     ;; result.
-                     (if (process-status-changes?)
-                         event:process-status
-                         (loop)))
+                    ((INTERRUPT) (loop))
                     (else (read-event-1 display block?))))))))))
 
 (define (preview-event-stream)