From: Nikodemus S. <nik...@ra...> - 2011-03-20 18:36:10
|
1.0.46.39: get rid of *EQL-SPECIALIZER-TABLE-LOCK* Use WITH-LOCKED-HASH-TABLE instead. Index: version.lisp-expr =================================================================== RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v retrieving revision 1.5223 diff -u -r1.5223 version.lisp-expr --- version.lisp-expr 19 Mar 2011 14:33:16 -0000 1.5223 +++ version.lisp-expr 20 Mar 2011 18:34:48 -0000 @@ -20,4 +20,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.46.38" +"1.0.46.39" Index: src/pcl/defs.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/pcl/defs.lisp,v retrieving revision 1.74 diff -u -r1.74 defs.lisp --- src/pcl/defs.lisp 4 Mar 2011 08:16:48 -0000 1.74 +++ src/pcl/defs.lisp 20 Mar 2011 18:34:49 -0000 @@ -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-hash-table (*eql-specializer-table*) (or (gethash object *eql-specializer-table*) (setf (gethash object *eql-specializer-table*) (make-instance 'eql-specializer :object object))))) |