packages feed

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