stm-io-hooks: STM with IO hooks

[ bsd3, concurrency, library ] [ Propose Tags ]

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!


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 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, 1.1.1, 1.1.2
Dependencies array (>=0.5 && <0.6), base (>=4.8 && <5), containers (>=0.5 && <0.6), mtl (>=2.2 && <2.3), stm (>= && <2.5) [details]
License BSD-3-Clause
Author Peter Robinson 2009-2015, Chris Kuklewicz 2006
Maintainer Peter Robinson <>
Revised Revision 1 made by HerbertValerioRiedel at 2017-03-23T16:23:17Z
Category Concurrency
Source repo head: git clone
Uploaded by PeterRobinson at 2015-08-01T13:05:41Z
Distributions NixOS:1.1.2
Downloads 12653 total (21 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-09-30 [all 2 reports]