X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fmacros.lisp;h=bc6fdf1a50d7cc17100d388d298b1b81fe5cd90c;hb=66b919851a8564e8f21247703d54c01c293414f8;hp=ad4e24f7dcd2173f83c55731043a2f267e7cd65a;hpb=afeb118568baef10add5ab472e544c485fd412ce;p=sbcl.git diff --git a/src/pcl/macros.lisp b/src/pcl/macros.lisp index ad4e24f..bc6fdf1 100644 --- a/src/pcl/macros.lisp +++ b/src/pcl/macros.lisp @@ -92,11 +92,13 @@ '(list* nil #'constantly-nil nil)) (defun find-class-cell (symbol &optional dont-create-p) - (or (gethash symbol *find-class*) - (unless dont-create-p - (unless (legal-class-name-p symbol) - (error "~S is not a legal class name." symbol)) - (setf (gethash symbol *find-class*) (make-find-class-cell symbol))))) + (let ((table *find-class*)) + (with-locked-hash-table (table) + (or (gethash symbol table) + (unless dont-create-p + (unless (legal-class-name-p symbol) + (error "~S is not a legal class name." symbol)) + (setf (gethash symbol table) (make-find-class-cell symbol))))))) (/show "pcl/macros.lisp 157")