2e950259d3
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).
14 lines
652 B
Text
14 lines
652 B
Text
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).
|