Save "block-thread-events" flag in continuations. This guarantees
authorChris Hanson <org/chris-hanson/cph>
Wed, 24 Feb 1999 04:51:57 +0000 (04:51 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 24 Feb 1999 04:51:57 +0000 (04:51 +0000)
that it will be properly stored no matter where the continuation is
captured.

v7/src/runtime/thread.scm

index f80a88ea86b37ce83b9d5d1ec4f1436a541d1d1d..23626b38c0ab36ceb5c840799e6fc3ba79734e9d 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: thread.scm,v 1.27 1999/02/24 04:43:19 cph Exp $
+$Id: thread.scm,v 1.28 1999/02/24 04:51:57 cph Exp $
 
 Copyright (c) 1991-1999 Massachusetts Institute of Technology
 
@@ -689,10 +689,11 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
          any-events?
          (begin
            (if event
-               (begin
+               (let ((block? (thread/block-events? thread)))
                  (set-thread/block-events?! thread #t)
                  (event)
-                 (set-interrupt-enables! interrupt-mask/gc-ok)))
+                 (set-interrupt-enables! interrupt-mask/gc-ok)
+                 (set-thread/block-events?! thread block?)))
            (loop #t))))))
 
 (define (allow-thread-event-delivery)