#| -*-Scheme-*-
-$Id: rep.scm,v 14.53 1999/02/18 03:54:13 cph Exp $
+$Id: rep.scm,v 14.54 1999/02/23 21:32:22 cph Exp $
Copyright (c) 1988-1999 Massachusetts Institute of Technology
(loop
(bind-abort-restart cmdl
(lambda ()
+ (deregister-thread-events)
(with-interrupt-mask interrupt-mask/all
(lambda (interrupt-mask)
interrupt-mask
#| -*-Scheme-*-
-$Id: runtime.pkg,v 14.315 1999/02/18 04:01:40 cph Exp $
+$Id: runtime.pkg,v 14.316 1999/02/23 21:31:53 cph Exp $
Copyright (c) 1988-1999 Massachusetts Institute of Technology
create-thread
create-thread-continuation
current-thread
+ deregister-all-events
deregister-input-thread-event
deregister-timer-event
detach-thread
#| -*-Scheme-*-
-$Id: thread.scm,v 1.24 1999/01/02 06:19:10 cph Exp $
+$Id: thread.scm,v 1.25 1999/02/23 21:31:46 cph Exp $
Copyright (c) 1991-1999 Massachusetts Institute of Technology
(define-integrable (threads-pending-timer-events?)
timer-records)
+(define (deregister-all-events)
+ (let ((thread (current-thread)))
+ (set-interrupt-enables! interrupt-mask/gc-ok)
+ (let ((block-events? (thread/block-events? thread)))
+ (set-thread/block-events?! thread #t)
+ (ring/discard-all (thread/pending-events thread))
+ (%deregister-input-thread-events thread)
+ (%discard-thread-timer-records thread)
+ (set-thread/block-events?! thread block-events?))
+ (set-interrupt-enables! interrupt-mask/all)))
+
(define (%discard-thread-timer-records thread)
(let loop ((record timer-records) (prev #f))
(if record
#| -*-Scheme-*-
-$Id: runtime.pkg,v 14.320 1999/02/18 04:01:31 cph Exp $
+$Id: runtime.pkg,v 14.321 1999/02/23 21:31:59 cph Exp $
Copyright (c) 1988-1999 Massachusetts Institute of Technology
create-thread
create-thread-continuation
current-thread
+ deregister-all-events
deregister-input-thread-event
deregister-timer-event
detach-thread