X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftoplevel.lisp;h=4cc0b0c5810a5b10c4d007285cbd6b812f02cb97;hb=a01e7ac2e8a9f3afae8f759381a0829fceb5bfde;hp=fcd8a5e73e9a0d59af3f653a615054924d68ddf4;hpb=a4a5e8fb87c7af981cb4c759dc3c5e6d44074f42;p=sbcl.git diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp index fcd8a5e..4cc0b0c 100644 --- a/src/code/toplevel.lisp +++ b/src/code/toplevel.lisp @@ -26,8 +26,9 @@ ;;; FIXME: These could be converted to DEFVARs. (declaim (special #!+(or x86 x86-64) *pseudo-atomic-bits* - sb!unix::*interrupts-enabled* - sb!unix::*interrupt-pending* + *allow-with-interrupts* + *interrupts-enabled* + *interrupt-pending* *type-system-initialized*)) (defvar *cold-init-complete-p*) @@ -41,7 +42,7 @@ (defun sysinit-pathname () (or (let ((sbcl-homedir (sbcl-homedir-pathname))) (when sbcl-homedir - (probe-file (merge-pathnames sbcl-homedir "sbclrc")))) + (probe-file (merge-pathnames "sbclrc" sbcl-homedir)))) #!+win32 (merge-pathnames "sbcl\\sbclrc" (sb!win32::get-folder-pathname @@ -75,7 +76,9 @@ command-line.") (with-unique-names (caught) `(let ((,caught (catch '%end-of-the-world (/show0 "inside CATCH '%END-OF-THE-WORLD") - ,@body))) + (unwind-protect + (progn ,@body) + (call-hooks "exit" *exit-hooks*))))) (/show0 "back from CATCH '%END-OF-THE-WORLD, flushing output") (flush-standard-output-streams) (sb!thread::terminate-session)