: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.
:reader method-specializers)
(lambda-list :initform () :initarg :lambda-list :reader method-lambda-list)
(%function :initform nil :initarg :function :reader method-function)
- (%documentation :initform nil :initarg :documentation)))
+ (%documentation :initform nil :initarg :documentation)
+ ;; True IFF method is known to have no CALL-NEXT-METHOD in it, or
+ ;; just a plain (CALL-NEXT-METHOD).
+ (simple-next-method-call
+ :initform nil
+ :initarg simple-next-method-call
+ :reader simple-next-method-call-p)))
(defclass accessor-method (standard-method)
((slot-name :initform nil :initarg :slot-name
(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)))))