Fixes broken with-view-transaction macro

This commit is contained in:
Dave Della Costa 2014-07-15 15:19:49 +09:00
parent 4bd320f4d6
commit de0c98c1c1

View file

@ -36,19 +36,18 @@
(defmacro with-view-transaction (defmacro with-view-transaction
[config binding & forms] [config binding & forms]
(let [tvar (first binding) (let [tvar (first binding), this-ns (nth binding 2)]
ns (nth binding 2)]
`(if (:deltas ~(second binding)) ;; check if we are in a nested transaction `(if (:deltas ~(second binding)) ;; check if we are in a nested transaction
(let [~tvar ~(second binding)] ~@forms) (let [~tvar ~(second binding), ~this-ns ~(nth binding 3)] ~@forms)
(do-transaction-fn-with-retries (do-transaction-fn-with-retries
(fn [] (fn []
(let [base-subscribed-views# (:base-subscribed-views ~config) (let [base-subscribed-views# (:base-subscribed-views ~config)
deltas# (atom []) deltas# (atom [])
result# (j/with-db-transaction [t# ~(second binding) :isolation :serializable] result# (j/with-db-transaction [t# ~(second binding) :isolation :serializable]
(let [~tvar (assoc t# :deltas deltas#)] (let [~tvar (assoc t# :deltas deltas#)
~@forms)) ~this-ns ~(nth binding 3)]
~ns ~(nth binding 3)] ~@forms))]
(broadcast-deltas base-subscribed-views# @deltas# ~ns) (broadcast-deltas base-subscribed-views# @deltas# ~(nth binding 3))
result#)))))) result#))))))
(defn vexec! (defn vexec!