(define (add-gc-daemon!/no-restore daemon)
(add-gc-daemon!
(lambda ()
- (if (not *within-restore-window?*)
+ (if (not (fluid *within-restore-window?*))
(daemon)))))
;;; SECONDARY-GC-DAEMONS are executed rarely. Their purpose is to
(RUNTIME HTML-FORM-CODEC)
(OPTIONAL (RUNTIME WIN32-REGISTRY))
(OPTIONAL (RUNTIME FFI))
+ (RUNTIME SAVE/RESTORE)
(RUNTIME SWANK)
(RUNTIME STACK-SAMPLER)))
\f
(define world-id "Image")
(define time-world-saved #f)
-(define *within-restore-window?* #f)
+(define *within-restore-window?*)
+
+(define (initialize-package!)
+ (set! *within-restore-window?* (make-fluid #f)))
\f
(define (disk-save filename #!optional id)
(let ((filename (->namestring (merge-pathnames filename)))
(read-microcode-tables!)
(lambda ()
(set! time-world-saved time)
- (fluid-let ((*within-restore-window?* #t))
- (event-distributor/invoke! event:after-restore))
+ (let-fluid *within-restore-window?* #t
+ (lambda ()
+ (event-distributor/invoke! event:after-restore)))
(start-thread-timer)
(cond ((string? id)
(set! world-id id)
(define (port/gc-start port)
(let ((operation (port/operation port 'GC-START)))
- (if (and operation (not *within-restore-window?*))
+ (if (and operation (not (fluid *within-restore-window?*)))
(operation port))))
(define (port/gc-finish port)
(let ((operation (port/operation port 'GC-FINISH)))
- (if (and operation (not *within-restore-window?*))
+ (if (and operation (not (fluid *within-restore-window?*)))
(operation port))))
(define (port/read-start port)