2
我正在将事件分组序列组成一个原子事务。在酸性状态下使事件序列原子化
考虑一个Map
存储在酸性状态,并想象你想实现Data.Map.alter
。带有可能值并返回的函数不能存储在更改日志中,因此无法定义酸性事件Alter
。但是,如果我编写一个函数调用query st Lookup ...
来查找旧值,然后update st Insert ...
来编写新的函数(或删除旧函数),则存在竞争条件,我可能会从中间发生的更新中摧毁信息。
在https://github.com/acid-state/acid-state/pull/48中,我使用了额外的MVar
来做手动锁定,但必须有更好的解决方案。
任何想法?