Как я могу увидеть количество откатов в моей STM в Clojure?

Как я могу увидеть количество откатов в моей STM в Clojure?

Ответы

Ответ 1

Вы не можете... если вы не хотите обмануть:

(defmacro spy-dosync [& body]
  `(let [retries# (atom -1)
         result# (dosync
                   (swap! retries# inc)
                   [email protected])]
     (println "retries count:" @retries#)
     result#))

а затем замените dosync на spy-dosync.

Ответ 2

Если вы чувствуете себя странно, вы можете взломать источник Clojure и перестроить (

Ответ 3

Существует STM-стресс test, написанный Крисом Хаузером, который может быть полезен