stm-io-hooks-0.7.3: stm-io-hooks.cabal
Name: stm-io-hooks
Synopsis: An STM monad with IO hooks
Description:
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!
Category: Concurrency
Stability: experimental
Author: Peter Robinson 2009-2011, Chris Kuklewicz 2006
Maintainer: Peter Robinson <thaldyron@gmail.com>
License: BSD3
License-file: LICENSE
Homepage: http://darcs.monoid.at/stm-io-hooks
Version: 0.7.3
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.3
,array >= 0.2.0.0 && < 0.4
,containers >= 0.2.0.0 && < 0.5
,mtl >= 1.1.0.2 && < 2.1
extensions: MultiParamTypeClasses
FunctionalDependencies
FlexibleInstances
GeneralizedNewtypeDeriving
ScopedTypeVariables
DeriveDataTypeable
RankNTypes
ExistentialQuantification
UndecidableInstances