The stm-io-hooks package
This library provides an 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. This library was inspired by the AdvSTM monad on the Haskell Wiki (see http://haskell.org/haskellwiki/?title=New_monads/MonadAdvSTM).
Feedback is welcome!
|Versions||0.0.1, 0.1.0, 0.2.0, 0.2.1, 0.3.0, 0.4.2, 0.5.4, 0.6.0, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.5, 1.0.0, 1.0.1, 1.1.0|
|Change log||None available|
|Dependencies||array (>=0.2.0.0 && <0.4), base (==4.*), containers (>=0.2.0.0 && <0.5), mtl (>=126.96.36.199 && <2.1), stm (>=188.8.131.52 && <2.3) [details]|
|Author||Peter Robinson 2009-2011, Chris Kuklewicz 2006|
|Maintainer||Peter Robinson <email@example.com>|
|Uploaded||Sun May 29 23:16:16 UTC 2011 by PeterRobinson|
|Downloads||1895 total (116 in last 30 days)|
|Status||Docs uploaded by user|
Build status unknown [no reports yet]
- stm-io-hooks-0.7.3.tar.gz [browse] (Cabal source package)
- Package description (included in the package)
For package maintainers and hackage trustees