X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fcode%2Fprofile.lisp;h=30bd69d9c55bcd5c9e40dd88ff0d7a83f6e132a2;hb=ff92598854bf7cae8d57fe49cef4d9a98e1ab345;hp=729be4f4e06e634c04317ec78e19c1e7281531ad;hpb=716c33a5b0ee4c745b48c2bf7635e83815b168f9;p=sbcl.git diff --git a/src/code/profile.lisp b/src/code/profile.lisp index 729be4f..30bd69d 100644 --- a/src/code/profile.lisp +++ b/src/code/profile.lisp @@ -248,8 +248,9 @@ (let ((encapsulated-fun (fdefinition name))) (multiple-value-bind (encapsulation-fun read-stats-fun clear-stats-fun) (profile-encapsulation-lambdas encapsulated-fun) - (setf (fdefinition name) - encapsulation-fun) + (without-package-locks + (setf (fdefinition name) + encapsulation-fun)) (setf (gethash name *profiled-fun-name->info*) (make-profile-info :name name :encapsulated-fun encapsulated-fun @@ -275,7 +276,8 @@ (cond (pinfo (remhash name *profiled-fun-name->info*) (if (eq (fdefinition name) (profile-info-encapsulation-fun pinfo)) - (setf (fdefinition name) (profile-info-encapsulated-fun pinfo)) + (without-package-locks + (setf (fdefinition name) (profile-info-encapsulated-fun pinfo))) (warn "preserving current definition of redefined function ~S" name))) (t @@ -515,5 +517,6 @@ Lisp process." ;;; different machine running at a different speed. We avoid this by ;;; erasing *CALL-OVERHEAD* whenever we save a .core file. (pushnew (lambda () - (makunbound '*overhead*)) + (without-package-locks + (makunbound '*overhead*))) *before-save-initializations*)