aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/concurrency/stm.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/concurrency/stm.lux9
1 files changed, 8 insertions, 1 deletions
diff --git a/stdlib/source/lux/concurrency/stm.lux b/stdlib/source/lux/concurrency/stm.lux
index 1fee00b7e..e29edc9a2 100644
--- a/stdlib/source/lux/concurrency/stm.lux
+++ b/stdlib/source/lux/concurrency/stm.lux
@@ -245,7 +245,14 @@
[inputs (follow pending-commits)]
(exec (|> inputs
(:! (frp;Channel [(STM Unit) (P;Promise Unit)]))
- (frp/map process-commit))
+ (P;await (function recur [?inputs]
+ (io (case ?inputs
+ #;Nil
+ []
+
+ (#;Cons head tail)
+ (exec (process-commit head)
+ (P;await recur tail)))))))
(wrap [])))
(wrap [])))
)))