From b5119efd8f787fa57b5759d3e129c80f7d622705 Mon Sep 17 00:00:00 2001 From: Matt Birkholz Date: Thu, 8 Mar 2012 12:00:06 -0700 Subject: [PATCH] Do NOT preserve flo:environment across disk-save/restore. This just makes it harder to use bands on systems with different fenv_t's. (Without this "help", a band with no threads MIGHT work...) --- src/runtime/savres.scm | 46 ++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/runtime/savres.scm b/src/runtime/savres.scm index 0310f95fc..de8f3fa7c 100644 --- a/src/runtime/savres.scm +++ b/src/runtime/savres.scm @@ -52,30 +52,28 @@ USA. (lambda () (call-with-current-continuation (lambda (continuation) - (let ((float-env (flo:environment))) - ;; GC cannot be allowed before the fixed-objects-vector - ;; is reset after restoring. - (with-absolutely-no-interrupts - (lambda () - (let ((fixed-objects (get-fixed-objects-vector))) - ((ucode-primitive call-with-current-continuation) - (lambda (restart) - (with-interrupt-mask interrupt-mask/gc-ok - (lambda (interrupt-mask) - interrupt-mask - (gc-flip) - (do () - (((ucode-primitive dump-band) restart filename)) - (with-simple-restart 'RETRY "Try again." - (lambda () - (error "Disk save failed:" filename)))) - (continuation - (lambda () - (set! time-world-saved time) - (if (string? id) unspecific #f))))))) - ((ucode-primitive set-fixed-objects-vector!) fixed-objects)))) - (read-microcode-tables!) - (flo:set-environment! float-env)) + ;; GC cannot be allowed before the fixed-objects-vector + ;; is reset after restoring. + (with-absolutely-no-interrupts + (lambda () + (let ((fixed-objects (get-fixed-objects-vector))) + ((ucode-primitive call-with-current-continuation) + (lambda (restart) + (with-interrupt-mask interrupt-mask/gc-ok + (lambda (interrupt-mask) + interrupt-mask + (gc-flip) + (do () + (((ucode-primitive dump-band) restart filename)) + (with-simple-restart 'RETRY "Try again." + (lambda () + (error "Disk save failed:" filename)))) + (continuation + (lambda () + (set! time-world-saved time) + (if (string? id) unspecific #f))))))) + ((ucode-primitive set-fixed-objects-vector!) fixed-objects)))) + (read-microcode-tables!) (lambda () (set! time-world-saved time) (fluid-let ((*within-restore-window?* #t)) -- 2.25.1