name:                async
version:             2.2.2
-- don't forget to update ./changelog.md!
synopsis:            Run IO operations asynchronously and wait for their results

description:
 This package provides a higher-level interface over
 threads, in which an @Async a@ is a concurrent
 thread that will eventually deliver a value of
 type @a@.  The package provides ways to create
 @Async@ computations, wait for their results, and
 cancel them.
 .
 Using @Async@ is safer than using threads in two
 ways:
 .
 * When waiting for a thread to return a result,
   if the thread dies with an exception then the
   caller must either re-throw the exception
   ('wait') or handle it ('waitCatch'); the
   exception cannot be ignored.
 .
 * The API makes it possible to build a tree of
   threads that are automatically killed when
   their parent dies (see 'withAsync').

license:             BSD3
license-file:        LICENSE
author:              Simon Marlow
maintainer:          Simon Marlow <marlowsd@gmail.com>
copyright:           (c) Simon Marlow 2012
category:            Concurrency
build-type:          Simple
cabal-version:       >=1.10
homepage:            https://github.com/simonmar/async
bug-reports:         https://github.com/simonmar/async/issues
tested-with:         GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4

extra-source-files:
    changelog.md
    bench/race.hs

source-repository head
    type: git
    location: https://github.com/simonmar/async.git

library
    default-language:    Haskell2010
    other-extensions:    CPP, MagicHash, RankNTypes, UnboxedTuples
    if impl(ghc>=7.1)
        other-extensions: Trustworthy
    exposed-modules:     Control.Concurrent.Async
    build-depends:       base >= 4.3 && < 4.14, hashable >= 1.1.2.0 && < 1.4, stm >= 2.2 && < 2.6

test-suite test-async
    default-language: Haskell2010
    type:       exitcode-stdio-1.0
    hs-source-dirs: test
    main-is:    test-async.hs
    build-depends: base >= 4.3 && < 4.14,
                   async,
                   stm,
                   test-framework,
                   test-framework-hunit,
                   HUnit

flag bench
    default: False

executable concasync
    if !flag(bench)
       buildable: False
    default-language: Haskell2010
    hs-source-dirs: bench
    main-is:    concasync.hs
    build-depends: base, async, stm
    ghc-options: -O2

executable conccancel
    if !flag(bench)
       buildable: False
    default-language: Haskell2010
    hs-source-dirs: bench
    main-is:    conccancel.hs
    build-depends: base, async, stm
    ghc-options: -O2 -threaded

executable race
    if !flag(bench)
       buildable: False
    default-language: Haskell2010
    hs-source-dirs: bench
    main-is:    race.hs
    build-depends: base, async, stm
    ghc-options: -O2 -threaded