Name: stm-io-hooks Synopsis: STM with IO hooks Description: 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! Category: Concurrency Stability: experimental Author: Peter Robinson 2009-2015, Chris Kuklewicz 2006 Maintainer: Peter Robinson License: BSD3 License-file: LICENSE Version: 1.1.0 x-revision: 1 Build-type: Simple Cabal-Version: >= 1.6 source-repository head type: git location: https://github.com/thaldyron/stm-io-hooks library Exposed-Modules: Control.Monad.AdvSTM Control.Concurrent.AdvSTM Control.Concurrent.AdvSTM.TMVar Control.Concurrent.AdvSTM.TVar Control.Concurrent.AdvSTM.TArray Control.Concurrent.AdvSTM.TChan Other-Modules: Control.Monad.AdvSTM.Def Control.Monad.AdvSTM.Class build-depends: base >= 4.8 && < 5 ,stm >= 2.1.1.2 && < 2.5 ,array == 0.5.* ,containers == 0.5.* ,mtl == 2.2.* extensions: MultiParamTypeClasses FunctionalDependencies FlexibleInstances GeneralizedNewtypeDeriving ScopedTypeVariables DeriveDataTypeable RankNTypes ExistentialQuantification UndecidableInstances