Transactions 计算Clojure中中止的事务
我想分析Clojure程序与C中锁定版本的行为。我想跟踪的一个指标是Clojure程序中止事务的总数 唯一的问题是我不能在我所处的事务上下文之外变异变量。我想做的是:Transactions 计算Clojure中中止的事务,transactions,clojure,functional-programming,Transactions,Clojure,Functional Programming,我想分析Clojure程序与C中锁定版本的行为。我想跟踪的一个指标是Clojure程序中止事务的总数 唯一的问题是我不能在我所处的事务上下文之外变异变量。我想做的是: (dosync (try (alter my_num inc) (catch Throwable t (do (alter total_aborts inc) (println "Caught " (.getClass t)) (throw t))))) 当然,如果事务没有完成
(dosync
(try
(alter my_num inc)
(catch Throwable t
(do
(alter total_aborts inc)
(println "Caught " (.getClass t))
(throw t)))))
当然,如果事务没有完成,那么total_aborts将永远不会增加!!!那我该怎么做呢?谢谢 您可以进行
my num
和total中止
并使用swap代码>而不是alter
谢谢!我忘记了原子。