0.9.2.36:
[sbcl.git] / src / code / cold-init.lisp
index 262e296..8e332ce 100644 (file)
@@ -92,8 +92,7 @@
   ;; !UNIX-COLD-INIT. And *TYPE-SYSTEM-INITIALIZED* could be changed to
   ;; *TYPE-SYSTEM-INITIALIZED-WHEN-BOUND* so that it doesn't need to
   ;; be explicitly set in order to be meaningful.
-  (setf *before-gc-hooks* nil
-        *after-gc-hooks* nil
+  (setf *after-gc-hooks* nil
        *gc-inhibit* 1
        *need-to-collect-garbage* nil
        sb!unix::*interrupts-enabled* t
   
   (show-and-call os-cold-init-or-reinit)
 
+  (show-and-call thread-init-or-reinit)
   (show-and-call stream-cold-init-or-reset)
   (show-and-call !loader-cold-init)
   (show-and-call !foreign-cold-init)
   (terpri)
   (/show0 "going into toplevel loop")
   (handling-end-of-the-world
-    (thread-init-or-reinit)
     (toplevel-init)
     (critically-unreachable "after TOPLEVEL-INIT")))
 
@@ -279,6 +278,7 @@ UNIX-like systems, UNIX-STATUS is used as the status code."
 ;;;; initialization functions
 
 (defun thread-init-or-reinit ()
+  (sb!thread::init-initial-thread)
   (sb!thread::init-job-control)
   (sb!thread::get-foreground))
 
@@ -286,6 +286,7 @@ UNIX-like systems, UNIX-STATUS is used as the status code."
   (without-interrupts
     (without-gcing
        (os-cold-init-or-reinit)
+      (thread-init-or-reinit)
       (stream-reinit)
       (signal-cold-init-or-reinit)
       (setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t)
@@ -298,7 +299,6 @@ UNIX-like systems, UNIX-STATUS is used as the status code."
       ;; call site.
       (set-floating-point-modes
        :traps '(:overflow #!-netbsd :invalid :divide-by-zero))))
-  (thread-init-or-reinit)
   (gc-reinit)
   ;; make sure TIME works correctly from saved cores
   (setf *internal-real-time-base-seconds* nil)