X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftoplevel.lisp;h=4cc0b0c5810a5b10c4d007285cbd6b812f02cb97;hb=2c06e3056fe6aa820817a927fa0e840eb7b8edb7;hp=416949b281ea8f965035a9f350cb971f41270c8c;hpb=06c341ebab3da2e81effcaacc2235f2b1e8bfa82;p=sbcl.git diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp index 416949b..4cc0b0c 100644 --- a/src/code/toplevel.lisp +++ b/src/code/toplevel.lisp @@ -26,6 +26,7 @@ ;;; FIXME: These could be converted to DEFVARs. (declaim (special #!+(or x86 x86-64) *pseudo-atomic-bits* + *allow-with-interrupts* *interrupts-enabled* *interrupt-pending* *type-system-initialized*)) @@ -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)