X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fcold-init.lisp;h=9e3359ed3ee0f026cfe38391132e0f74dcaf7112;hb=2419deec84b45d81610dc8d3db610c3e2f7b9486;hp=1ce59d2cb592ea15749d3b88656ed27487a7af54;hpb=9769174fc3e1a9d840712a694f61c6051e161cd7;p=sbcl.git diff --git a/src/code/cold-init.lisp b/src/code/cold-init.lisp index 1ce59d2..9e3359e 100644 --- a/src/code/cold-init.lisp +++ b/src/code/cold-init.lisp @@ -96,6 +96,7 @@ *gc-inhibit* t *gc-pending* nil #!+sb-thread *stop-for-gc-pending* #!+sb-thread nil + *allow-with-interrupts* t *interrupts-enabled* t *interrupt-pending* nil *break-on-signals* nil @@ -103,7 +104,8 @@ *current-error-depth* 0 *cold-init-complete-p* nil *type-system-initialized* nil - sb!vm:*alloc-signal* nil) + sb!vm:*alloc-signal* nil + sb!kernel::*gc-epoch* (cons nil nil)) ;; I'm not sure where eval is first called, so I put this first. #!+sb-eval @@ -289,15 +291,15 @@ UNIX-like systems, UNIX-STATUS is used as the status code." (defun reinit () (setf *default-external-format* nil) (setf sb!alien::*default-c-string-external-format* nil) - (without-interrupts - (without-gcing - (os-cold-init-or-reinit) - (thread-init-or-reinit) - (stream-reinit) - #!-win32 - (signal-cold-init-or-reinit) - (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t) - (float-cold-init-or-reinit))) + ;; WITHOUT-GCING implies WITHOUT-INTERRUPTS. + (without-gcing + (os-cold-init-or-reinit) + (thread-init-or-reinit) + (stream-reinit t) + #!-win32 + (signal-cold-init-or-reinit) + (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t) + (float-cold-init-or-reinit)) (gc-reinit) (foreign-reinit) (time-reinit)