【发布时间】:2014-12-06 00:38:22
【问题描述】:
我正在努力将事件序列分组到一个原子事务中。
考虑以酸状态存储的Map,并假设您想要实现Data.Map.alter。接受可能值并返回值的函数无法存储在更改日志中,因此无法定义酸性事件Alter。但是,如果我编写一个函数调用query st Lookup ... 来查找旧值,然后调用update st Insert ... 来编写新值(或删除旧值),则会出现竞争条件,我可能会破坏发生在之间。
在https://github.com/acid-state/acid-state/pull/48中,我用了一个额外的MVar来做手动加锁,但一定有更好的解决方案。
有什么想法吗?
【问题讨论】:
标签: haskell acid-state