X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Ftarget-thread.lisp;h=62c7b03612ccc621d51c41b9be2dd8f4861ce413;hb=15d6e7c9a2c3234f95dfe278046fa2fee1b0c007;hp=b2fe232c51e03a238193db6effd0c90c1a687e5d;hpb=d0511d2a94e7d2d346e2f4acc38ff84cd99a74b1;p=sbcl.git diff --git a/src/code/target-thread.lisp b/src/code/target-thread.lisp index b2fe232..62c7b03 100644 --- a/src/code/target-thread.lisp +++ b/src/code/target-thread.lisp @@ -265,20 +265,22 @@ time we reacquire LOCK and return to the caller." ;; in time we'll move some of the binding presently done in C ;; here too (let ((sb!kernel::*restart-clusters* nil) + (sb!kernel::*handler-clusters* nil) + (sb!kernel::*condition-restarts* nil) (sb!impl::*descriptor-handlers* nil) ; serve-event (sb!impl::*available-buffers* nil)) ;for fd-stream ;; can't use handling-end-of-the-world, because that flushes ;; output streams, and we don't necessarily have any (or we ;; could be sharing them) (sb!sys:enable-interrupt sb!unix:sigint :ignore) - (sb!unix:unix-exit - (catch 'sb!impl::%end-of-the-world - (with-simple-restart - (destroy-thread - (format nil "~~@" - (current-thread-id))) - (funcall real-function)) - 0)))))))) + (catch 'sb!impl::%end-of-the-world + (with-simple-restart + (destroy-thread + (format nil "~~@" + (current-thread-id))) + (funcall real-function)) + 0)) + (values)))))) (with-mutex ((session-lock *session*)) (pushnew tid (session-threads *session*))) tid))