name: concurrent-extra version: 0.3.1 cabal-version: >= 1.6 build-type: Custom stability: experimental author: Bas van Dijk Roel van Dijk maintainer: Bas van Dijk Roel van Dijk copyright: (c) 2010 Bas van Dijk & Roel van Dijk license: BSD3 license-file: LICENSE category: Concurrency synopsis: Extra concurrency primitives description: The @concurrent-extra@ package offers among other things the following selection of synchronisation primitives: . * @Lock@: Enforce exclusive access to a resource. Also known as a binary semaphore or mutex. . * @RLock@: A lock which can be acquired multiple times by the same thread. Also known as a reentrant mutex. . * @Broadcast@: Wake multiple threads by broadcasting a value. . * @Event@: Wake multiple threads by signalling an event. . * @ReadWriteLock@: Multiple-reader, single-writer locks. Used to protect shared resources which may be concurrently read, but only sequentially written. . * @ReadWriteVar@: Concurrent read, sequential write variables. . The package also provides @STM@ versions of @Broadcast@ and @Event@. . Besides these synchronisation primitives the package provides: . * @Thread@: Threads extended with the ability to wait for their termination. . * @delay@: Arbitrarily long thread delays. . * @timeout@: Wait arbitrarily long for an IO computation to finish. . Please consult the API documentation of the individual modules for more detailed information. . This package was inspired by the concurrency libraries of Java and Python. source-repository head Type: darcs Location: http://code.haskell.org/concurrent-extra ------------------------------------------------------------------------------- flag test description: Build the testing suite default: False flag hpc description: Enable program coverage on test executable default: False flag nolib description: Don't build the library default: False ------------------------------------------------------------------------------- library build-depends: base >= 3 && < 4.3 , base-unicode-symbols >= 0.1.1 && < 0.2 , stm >= 2.1.1 && < 2.2 exposed-modules: Control.Concurrent.Lock , Control.Concurrent.RLock , Control.Concurrent.Event , Control.Concurrent.Broadcast , Control.Concurrent.ReadWriteLock , Control.Concurrent.ReadWriteVar , Control.Concurrent.Thread , Control.Concurrent.Thread.Delay , Control.Concurrent.STM.Event , Control.Concurrent.STM.Broadcast , Control.Concurrent.Timeout other-modules: Utils ghc-options: -Wall if flag(nolib) buildable: False ------------------------------------------------------------------------------- executable test-concurrent-extra main-is: test.hs other-modules: Control.Concurrent.Event.Test , Control.Concurrent.Lock.Test , Control.Concurrent.RLock.Test , Control.Concurrent.Broadcast.Test , Control.Concurrent.ReadWriteLock.Test , Control.Concurrent.ReadWriteVar.Test , Control.Concurrent.Thread.Test , Control.Concurrent.STM.Event.Test , Control.Concurrent.STM.Broadcast.Test , Control.Concurrent.Timeout.Test , TestUtils ghc-options: -Wall if flag(test) build-depends: HUnit >= 1.2.2 && < 1.3 , QuickCheck >= 2.1.0 && < 2.2 , test-framework >= 0.2.4 && < 0.3 , test-framework-hunit >= 0.2.4 && < 0.3 , test-framework-quickcheck2 >= 0.2.4 && < 0.3 buildable: True else buildable: False if flag(hpc) ghc-options: -fhpc