projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more robust deadlock detection
[sbcl.git]
/
src
/
pcl
/
dfun.lisp
diff --git
a/src/pcl/dfun.lisp
b/src/pcl/dfun.lisp
index
be3c163
..
35e9fba
100644
(file)
--- a/
src/pcl/dfun.lisp
+++ b/
src/pcl/dfun.lisp
@@
-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
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?
;;;
;;; 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*))
(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)))))
(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*)
(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
(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.
;;
;; 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)
;; 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...
;; 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)
\f
(defvar *dfun-count* nil)
(defvar *dfun-list* nil)