2
我正在將事件分組序列組成一個原子事務。在酸性狀態下使事件序列原子化
考慮一個Map
存儲在酸性狀態,並想象你想實現Data.Map.alter
。帶有可能值並返回的函數不能存儲在更改日誌中,因此無法定義酸性事件Alter
。但是,如果我編寫一個函數調用query st Lookup ...
來查找舊值,然後update st Insert ...
來編寫新的函數(或刪除舊函數),則存在競爭條件,我可能會從中間發生的更新中摧毀信息。
在https://github.com/acid-state/acid-state/pull/48中,我使用了額外的MVar
來做手動鎖定,但必須有更好的解決方案。
任何想法?