Run IO operations asynchronously and wait for their results

Version on this page:2.0.2
LTS Haskell 9.17:
Stackage Nightly 2017-12-10:
Latest on Hackage:
BSD3 licensed by Simon Marlow
Maintained by Simon Marlow

Module documentation for 2.0.2

There are no documented modules for this package.

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).


Changes in

  • Make 'cancelWith' wait for the cancelled thread to terminate, like 'cancel'
  • Updates to dependency bounds for GHC 8.2

Changes in 2.1.1:

  • Add concurrently_
  • Add replicateConcurrently
  • Add replicateConcurrently_
  • Fix incorrect argument order in forConcurrently_
  • Generalize mapConcurrently_ and forConcurrently_ to Foldable
  • withAsync now reliably kills the thread, by using an uninterruptible cancel
  • Make cancel wait for the thread to finish, and adjust 'concurrently' to match

Changes in 2.1.0:

  • Bump base dependency to allow 4.10
  • Remove invalid Monad instance for Concurrently
  • Add Monoid and Semigroup instances for Concurrently
  • Add forConcurrently (flipped version of mapConcurrently)
  • Add STM version of all applicable IO functions: waitAnySTM, waitAnyCatchSTM, waitEitherSTM, waitEitherCatchSTM, waitEitherSTM_, and waitBothSTM.

Changes in 2.0.2:

  • Add a Monad instance for Concurrently
  • Bump base dependency to allow 4.9

Changes in

  • Add workaround to waitCatch for #14

Changes in

  • Bump base dependencies for GHC 7.8

Changes in

  • Bump base dependency of test suite

Changes in

  • Bump base dependency to allow 4.6

Changes in

  • Bump stm dependency to 2.4

Changes in

  • Safe Haskell support: Control.Concurrent.Async is now Trustworthy

Changes in

  • Added a Functor instance for Async
  • Added asyncBound, asyncOn, asyncWithUnmask, asyncOnWithUnmask, withAsyncBound, withAsyncOn, withAsyncWithUnmask, withAsyncOnWithUnmask.
  • Added mapConcurrently
  • Added Concurrently (with Applicative and Alternative instances)
Depends on:
Used by 288 packages:
Agda, aivika-realtime, alarmclock, Allure, apecs, apns-http2, ariadne, ascii-progress, async-ajax, async-extra, async-extras, async-io-either, async-manager, async-pool, aws-ec2-knownhosts, aws-performance-tests, azure-servicebus, b9, bibdb, biohazard, bond, borel, buchhaltung, buildwrapper, cabal-install, cassy, cgrep, chan, classy-prelude, codecov-haskell, concurrent-dns-cache, Concurrential, concurrent-machines, concurrent-output, conduit-algorithms, conduit-extra, conduit-throttle, courier, cql-io, cqrs-example, craft, craze, cryptol, CurryDB, danibot, darcs, d-bus, debug-me, diplomacy-server, djinn-ghc, dns, doi, dustme, engine-io, EtaMOO, every, executor, extract-dependencies, fast-tags, feed-gipeda, ficketed, file-modules, fizzbuzz-as-a-service, fraxl, fsnotify, giak, ginsu, git-annex, git-repair, glirc, glue, glue-example, gore-and-ash-async, GPipe-GLFW, hackage-diff, hackage-server, hackport, halma-gui, halvm-web, hamtsolo, hapistrano, haskell-tor, haskoin-node, hats, haxl-amazonka, haxl-facebook, hcoap, heartbeat-streams, hedgehog, hedis, hinotify, hinterface, hipchat-hs, hledger-ui, hocker, hpc-coveralls, hpio, hsbencher, hsdev, hsnsq, hspec-core, hspec-meta, hs-watchman, http2-client, http-proxy, http-reverse-proxy, hydra-print, ide-backend, ide-backend-common, ide-backend-server, idris, inspection-proxy, introduction, io-memoize, irc-conduit, jupyter, katip, katip-elasticsearch, kazura-queue, keiretsu, keter, keysafe, laborantin-hs, lambdacube-compiler, LambdaHack, lambdatex, lawless-concurrent-machines, ldap-client, leveldb-haskell, leveldb-haskell-fork, libjenkins, lifted-async, lifted-protolude, linode, liquid-fixpoint, logging-effect, lvish, lxd-client, make-package, mangopay, marquise, maxent-learner-hw-gui, mealstrom, mediabus, mediabus-rtp, mellon-core, mighttpd2, minio-hs, minisat, moesocks, mqtt, mqtt-hs, music-preludes, mvc, mvc-updates, myanimelist-export, nats-queue, neko-obfs, netease-fm, network-transport-amqp, network-transport-zeromq, ngx-export, nicovideo-translator, noether, OnRmt, parconc-examples, pg-harness, pg-harness-server, pgstream, phybin, pipes-cliff, pipes-concurrency, pipes-p2p, pipes-postgresql-simple, pipes-protolude, pipes-shell, pixelated-avatar-generator, powerqueue, powerqueue-levelmem, prefork, progress-meter, promise, propellor, protolude, protolude-lifted, pubnub, pulse, push-notify, push-notify-ccs, quickcheck-state-machine, quoridor-hs, rados-haskell, raketka, rapid, rasa, reflex-sdl2, reload, remotion, restricted-workers, rfc, riak, ridley, rospkg, runmany, sarsi, satchmo, sbv, scalp-webhooks, scrape-changes, servant-haxl-client, servant-subscriber, servant-websockets, shadowsocks, shelduck, shell-conduit, shelly, shelly-extra, simple-log, snap-error-collector, snaplet-scoped-session, snaplet-wordpress, snap-testing, snmp, socketed, sscan, stack, stack2nix, stackage-curator, stackage-install, stack-bump, stack-run, stack-run-auto, statgrab, steeloverseer, stm-chunked-queues, stm-conduit, store, stratum-tool, streaming-commons, swagger-test, t3-server, tailfile-hinotify, task-distribution, taskpool, tasty, tasty-golden, tasty-silver, tasty-smallcheck, tensorflow, threepenny-gui, throttle-io-stream, ticker, time-warp, tiny-scheduler, tls, top, tpar, tpb, transf, tslogger, turtle, typed-process, typed-spreadsheet, uhttpc, unliftio, update-nix-fetchgit, ureader, vaultaire-common, vault-tool-server, vgrep, vigilance, wai-handler-launch, wai-middleware-consul, warp, websockets-rpc, websockets-simple, wrecker-ui, ws, ws-chans, xdcc, yesod-bin, yesod-static, yesod-websockets, yet-another-logger, zeromq3-haskell, zeromq4-haskell, zifter, zre
comments powered byDisqus