Permalink
Browse files

Recover code missed during merges

* src/code/target-thread.lisp: rebind *exit-in-process* in
  initial-thread-function; catch %return-from-thread
  • Loading branch information...
1 parent 8b30ef3 commit ba3c407d7d767d86e5601564e0169a72b0959df3 @akovalenko committed Nov 27, 2012
Showing with 7 additions and 2 deletions.
  1. +7 −2 src/code/target-thread.lisp
@@ -1385,6 +1385,7 @@ See also: RETURN-FROM-THREAD, ABORT-THREAD."
(*restart-clusters* nil)
(*handler-clusters* (sb!kernel::initial-handler-clusters))
(*condition-restarts* nil)
+ (*exit-in-process* nil)
(sb!impl::*deadline* nil)
(sb!impl::*deadline-seconds* nil)
(sb!impl::*step-out* nil)
@@ -1434,8 +1435,12 @@ See also: RETURN-FROM-THREAD, ABORT-THREAD."
;; makes debugging feasible, at least.
(handler-case
(cons t
- (multiple-value-list
- (apply real-function arguments)))
+ (multiple-value-list
+ (unwind-protect
+ (catch '%return-from-thread
+ (apply real-function arguments))
+ (when *exit-in-process*
+ (sb!impl::call-exit-hooks)))))
#!+win32
(sb!kernel::control-stack-exhausted ()
(throw 'sb!impl::%toplevel-catcher nil))))

0 comments on commit ba3c407

Please sign in to comment.