name:                async
version:             2.2.3
-- 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 == 9.2.0.20210821
    GHC == 9.0.1
    GHC == 8.10.4
    GHC == 8.8.4
    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.17,
                         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.17,
                   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
