@hackage stm-io-hooks0.3.0

An STM monad with IO hooks

This library provides an STM monad with commit and retry IO hooks. A retry-action is run (once) if the transaction retries, while commit-actions are executed iff the transaction commits. The library 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. Part of this library uses code from the Haskell Wiki (see http://haskell.org/haskellwiki/?title=New_monads/MonadAdvSTM).

  • Installation

  • Dependencies (0)

  • Dependents (0)