イベントのシーケンスを 1 つのアトミック トランザクションにグループ化するのに苦労しています。
酸状態で保存されたを考えて、Map
を実装したいと想像してくださいData.Map.alter
。多分値を受け取って値を返す関数は変更ログに保存できないため、酸性イベントを定義することはできませんAlter
。query st Lookup ...
ただし、古い値を検索してから新しい値を書き込む (または古い値を削除する)ように呼び出す関数を作成するupdate st Insert ...
と、競合状態が発生し、その間に発生した更新から情報が破棄される可能性があります。
https://github.com/acid-state/acid-state/pull/48では、手動ロックを行うためにエクストラを使用しましたMVar
が、より良い解決策があるはずです。
何か案は?