Is a new snapshot pushed onto the history queue of a ref when 1. every time the ref is a target of alter, commute, ref-set, reset, alter-meta!, or reset-meta!, or 2. only when the committed value for the ref is not identical to the value at the end of the history queue? When checking the committability of a ref before the end of a transaction, is the check that
1. the end position of the history queue for that ref is the same as it was at the beginning of the transaction, or 2. the value of the ref at the end of the history queue is identical to the value at the beginning of the transaction? For both questions, choice 1 appears to be unquestionable safe, but could sponsor a higher number of retries. The choice 2s may conserve some retries, but I'm not sure about the safety. For both questions, the implementation complexity and efficiency seem similar. At any rate, the actual implementation is not a part of the documented API, yet could affect how one codes transaction functions. Even if I dug through the Java source to form my own impressions, one is not supposed to rely on such behaviour. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.