Name: stm-io-hooks Synopsis: An STM monad with IO hooks Description: This library provides an 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 ). . Feedback is welcome! Category: Concurrency Stability: experimental Author: Peter Robinson 2009-2010, Chris Kuklewicz 2006 Maintainer: Peter Robinson License: BSD3 License-file: LICENSE Homepage: http://darcs.monoid.at/stm-io-hooks Version: 0.7.0 Build-type: Simple Cabal-Version: >= 1.2.3 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 && < 5 ,stm >= 2.1.1.2 && < 2.2 ,array >= 0.2.0.0 && < 0.4 ,containers >= 0.2.0.0 && < 0.4 ,mtl >= 1.1.0.2 && < 1.3 extensions: MultiParamTypeClasses FunctionalDependencies FlexibleInstances GeneralizedNewtypeDeriving ScopedTypeVariables DeriveDataTypeable RankNTypes ExistentialQuantification UndecidableInstances