aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/control/concurrency/stm.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/control/concurrency/stm.lux')
-rw-r--r--stdlib/source/lux/control/concurrency/stm.lux24
1 files changed, 12 insertions, 12 deletions
diff --git a/stdlib/source/lux/control/concurrency/stm.lux b/stdlib/source/lux/control/concurrency/stm.lux
index 0743a0720..259511eb7 100644
--- a/stdlib/source/lux/control/concurrency/stm.lux
+++ b/stdlib/source/lux/control/concurrency/stm.lux
@@ -46,14 +46,14 @@
(def: (write! new-value var)
(All [a] (-> a (Var a) (IO Any)))
- (do {@ io.monad}
+ (do {! io.monad}
[#let [var' (:representation var)]
(^@ old [old-value observers]) (atom.read var')
succeeded? (atom.compare-and-swap old [new-value observers] var')]
(if succeeded?
- (do @
- [_ (monad.map @ (function (_ sink)
- (do @
+ (do !
+ [_ (monad.map ! (function (_ sink)
+ (do !
[result (:: sink feed new-value)]
(case result
(#try.Success _)
@@ -217,10 +217,10 @@
(def: (issue-commit commit)
(All [a] (-> (Commit a) (IO Any)))
(let [entry [commit (promise.promise [])]]
- (do {@ io.monad}
+ (do {! io.monad}
[|commits|&resolve (atom.read pending-commits)]
(loop [[|commits| resolve] |commits|&resolve]
- (do @
+ (do !
[|commits| (promise.poll |commits|)]
(case |commits|
#.None
@@ -238,24 +238,24 @@
(let [[stm-proc output resolve] commit
[finished-tx value] (stm-proc fresh-tx)]
(if (can-commit? finished-tx)
- (do {@ io.monad}
- [_ (monad.map @ commit-var! finished-tx)]
+ (do {! io.monad}
+ [_ (monad.map ! commit-var! finished-tx)]
(resolve value))
(issue-commit commit))))
(def: init-processor!
(IO Any)
- (do {@ io.monad}
+ (do {! io.monad}
[flag (atom.read commit-processor-flag)]
(if flag
(wrap [])
- (do @
+ (do !
[was-first? (atom.compare-and-swap flag #1 commit-processor-flag)]
(if was-first?
- (do @
+ (do !
[[promise resolve] (atom.read pending-commits)]
(promise.await (function (recur [head [tail _resolve]])
- (do @
+ (do !
[_ (process-commit head)]
(promise.await recur tail)))
promise))