欢迎!请参阅关于页面获取更多关于此如何运作的信息。
(在此处请求票证 http://groups.google.com/group/clojure/browse_thread/thread/119311e89fa46806/4903ce25ff6deaa6#4903ce25ff6deaa6)
总体思路是在事务内声明不变量,当提交时间不变量不再成立时,事务会重新尝试。因此,它可以同时充当一种软保障,或指定“部分同行”的操作。因此,它将启用更粗的引用。
请参阅附带的文件以快速原型。
用户代码将如下所示
`(invariant (@world :key))`(commute world update-in [:key] val-transform-fn)`
`
这意味着只有在-transaction和提交点返回的值相同的情况下,才发生通勤。
评论由:导入器制作
从http://www.assembla.com/spaces/clojure/tickets/213转换附件invariants.patch - https://www.assembla.com/spaces/clojure/documents/dd4kUS3MWr3QvMeJe5aVNr/download/dd4kUS3MWr3QvMeJe5aVNr