Optimize CHAR-EQUAL on constant and base-char args.
[sbcl.git] / src / pcl / dfun.lisp
index be3c163..35e9fba 100644 (file)
@@ -1579,7 +1579,7 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
     nil))
 \f
 ;;; Not synchronized, as all the uses we have for it are multiple ones
-;;; and need WITH-LOCKED-HASH-TABLE in any case.
+;;; and need WITH-LOCKED-SYSTEM-TABLE in any case.
 ;;;
 ;;; FIXME: Is it really more efficient to store this stuff in a global
 ;;; table instead of having a slot in each method?
@@ -1590,7 +1590,7 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
 
 (defun flush-effective-method-cache (generic-function)
   (let ((cache *effective-method-cache*))
-    (with-locked-hash-table (cache)
+    (with-locked-system-table (cache)
       (dolist (method (generic-function-methods generic-function))
         (remhash method cache)))))
 
@@ -1615,7 +1615,7 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
           (call-no-applicable-method gf args)))
       (let* ((key (car methods))
              (ht *effective-method-cache*)
-             (ht-value (with-locked-hash-table (ht)
+             (ht-value (with-locked-system-table (ht)
                          (or (gethash key ht)
                              (setf (gethash key ht) (cons nil nil))))))
         (if (and (null (cdr methods)) all-applicable-p ; the most common case
@@ -1700,10 +1700,6 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
       ;; are part of this same code path (done while the lock is held),
       ;; which we AVER.
       ;;
-      ;; FIXME: When our mutexes are smart about the need to wake up
-      ;; sleepers we can put a mutex here instead -- but in the meantime
-      ;; we use a spinlock to avoid a syscall for every dfun update.
-      ;;
       ;; KLUDGE: No need to lock during bootstrap.
       (if early-p
           (update)
@@ -1712,7 +1708,7 @@ Except see also BREAK-VICIOUS-METACIRCLE.  -- CSR, 2003-05-28
             ;; where we can end up in a metacircular loop here? In
             ;; case there are, better fetch it while interrupts are
             ;; still enabled...
-            (sb-thread::call-with-recursive-system-spinlock #'update lock))))))
+            (sb-thread::call-with-recursive-system-lock #'update lock))))))
 \f
 (defvar *dfun-count* nil)
 (defvar *dfun-list* nil)