STM with IO hooks

Latest on Hackage:1.1.0

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

BSD3 licensed by Peter Robinson 2009-2015, Chris Kuklewicz 2006
Maintained by Peter Robinson

This library provides a Software Transactional Memory (STM) monad with commit and retry IO hooks. A retry-action is run (at least once) if the transaction retries, while commit-actions are executed iff the transaction commits. The AdvSTM monad also gives some atomicity guarantees for commit-actions:

  • When a TVar is modified in a transaction and this transaction commits, the update remains invisible to other threads until the corresponding onCommit action is run.

  • If the onCommit action throws an exception, the original values of the modified TVars are restored.

Note: The package can be used as a drop-in replacement for Control.Concurrent.STM.

Feedback is welcome!

Depends on 5 packages:
Used by 2 packages:
comments powered byDisqus