lazy-async: Asynchronous actions that don't start right away
Sometimes we have a bunch of IO
actions that do things like
read files, make HTTP requests, or query a database. Some of the
information that these actions produce might not end up being
needed, depending on the breaks. In the interest of avoiding
unnecessary effort, we don't want to simply run all the actions
and collect their results upfront. We also don't want to simply
run an action right before its result is needed, because it might
be needed in more than one place, which opens the possibility of
unnecessarily running the same action more than once. In
situations like these, we use LazyAsync.
Under the hood, an IO
action is turned into a LazyAsync
by
constructing two things: An Async
(from the async
package),
and a TVar Bool
(from the stm
package). The TVar, initialized
to False
, indicates whether the action is wanted yet. The async
thread waits until the TVar turns True
and then runs the action.
Downloads
- lazy-async-1.0.0.1.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 1.0.0.0, 1.0.0.1, 1.0.0.2, 1.0.0.3, 1.1.0.0 |
---|---|
Change log | changelog.txt |
Dependencies | base (>=4.14 && <4.17), exceptions (>=0.10.4 && <0.11), lifted-async (>=0.10.0.6 && <0.11), monad-control (>=1.0.2.3 && <1.1), rank2classes (>=1.4.0.1 && <1.5), stm (>=2.5 && <2.6), transformers (>=0.5.6.2 && <0.6), transformers-base (>=0.4.5.1 && <0.5) [details] |
License | MIT |
Copyright | 2021 Mission Valley Software LLC |
Author | Chris Martin |
Maintainer | Chris Martin, Julie Moronuki |
Revised | Revision 1 made by chris_martin at 2022-02-25T03:36:43Z |
Category | Concurrency |
Home page | https://github.com/typeclasses/lazy-async |
Bug tracker | https://github.com/typeclasses/lazy-async/issues |
Source repo | head: git clone https://github.com/typeclasses/lazy-async |
Uploaded | by chris_martin at 2022-01-12T09:53:25Z |
Distributions | |
Downloads | 443 total (4 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Last success reported on 2022-01-12 [all 1 reports] |