packages feed

stm-io-hooks-0.4.2: stm-io-hooks.cabal

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 (once) if the transaction retries, while commit-actions are 
    executed iff the transaction commits. The library 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'. Part of this library uses code from
    the Haskell Wiki (see <http://haskell.org/haskellwiki/?title=New_monads/MonadAdvSTM>).

Category:       Concurrency
Author:         Peter Robinson 2009, Chris Kuklewicz 2006
Maintainer:     Peter Robinson <robinson@ecs.tuwien.ac.at>
License:        BSD3
License-file:   LICENSE
Homepage:       http://darcs.monoid.at/stm-io-hooks
Version:        0.4.2

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
                    -- TODO: add Sample module!
                   
    build-depends:  base       >= 4 && < 5
                   ,stm        >= 2.1.1.2 && < 2.2
                   ,array      >= 0.2.0.0 && < 0.3
                   ,containers >= 0.2.0.0 && < 0.3
                   ,mtl        >= 1.1.0.2 && < 1.2

    extensions:     MultiParamTypeClasses
                   ,FunctionalDependencies
                   ,FlexibleInstances
                   ,GeneralizedNewtypeDeriving
                   ,ScopedTypeVariables
                   ,DeriveDataTypeable
                   ,RankNTypes
                   ,ExistentialQuantification
                   ,UndecidableInstances