X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fpcl%2Fdefs.lisp;h=f1e50b9e6c276670cd866a798682eb11ee193877;hb=d8422b9967f465801891907396bcc5bfde0f3297;hp=2085f9ee39a968a5b65710d2a3498311137916bc;hpb=503ad9d8685b335a69dc667dec4ce48f1a03af98;p=sbcl.git diff --git a/src/pcl/defs.lisp b/src/pcl/defs.lisp index 2085f9e..f1e50b9 100644 --- a/src/pcl/defs.lisp +++ b/src/pcl/defs.lisp @@ -357,7 +357,7 @@ :accessor gf-dfun-state) ;; Used to make DFUN-STATE & FIN-FUNCTION updates atomic. (%lock - :initform (sb-thread::make-spinlock :name "GF lock") + :initform (sb-thread:make-mutex :name "GF lock") :reader gf-lock) ;; Set to true by ADD-METHOD, REMOVE-METHOD; to false by ;; MAYBE-UPDATE-INFO-FOR-GF. @@ -592,13 +592,10 @@ (defvar *eql-specializer-table* (make-hash-table :test 'eql)) -(defvar *eql-specializer-table-lock* - (sb-thread::make-spinlock :name "EQL-specializer table lock")) - (defun intern-eql-specializer (object) ;; Need to lock, so that two threads don't get non-EQ specializers ;; for an EQL object. - (sb-thread::with-spinlock (*eql-specializer-table-lock*) + (with-locked-system-table (*eql-specializer-table*) (or (gethash object *eql-specializer-table*) (setf (gethash object *eql-specializer-table*) (make-instance 'eql-specializer :object object)))))