(defmethod map-transactions ((cache standard-cache) function)
;; FUNCTION may be a function that closes the transaction (removing
;; it from the hash table), so we create a fresh list with transactions
;; before doing the actual iteration.
(let ((transactions '()))
(loop for transaction being the hash-value of (transactions cache)
do (push transaction transactions))
;; Now we can iterate safely.
(mapc function transactions)))
Source Context