diff --git a/src/impl-lispworks.lisp b/src/impl-lispworks.lisp index 5988dbcbdf9d59b8b363c5e5b2b5fdba52d42902..fd8245c70e15dc93747c7005947a972900a889d2 100644 --- a/src/impl-lispworks.lisp +++ b/src/impl-lispworks.lisp @@ -22,11 +22,12 @@ Distributed under the MIT license (see LICENSE file) (defun %make-thread (function name) (mp:process-run-function name nil - (let ((return-values - (multiple-value-list (funcall function)))) - (setf (mp:process-private-property 'return-values (current-thread)) - return-values) - (values-list return-values)))) + (lambda () + (let ((return-values + (multiple-value-list (funcall function)))) + (setf (mp:process-private-property 'return-values (current-thread)) + return-values) + (values-list return-values))))) (defun current-thread () #-#.(cl:if (cl:find-symbol (cl:string '#:get-current-process) :mp) '(and) '(or))