From 2bbb4185a455bc0ea940671422101f1e3b75306e Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Sat, 24 Jun 2023 15:53:05 -0400 Subject: [PATCH] readme --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5c86c99a..a4c78f7a 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,17 @@ The rationale is that we should not have more domains than cores, so it's easier to pre-allocate exactly that many domains, and run more flexible thread pools on top. -In addition, `Moonpool.Fut` provides futures/promises that execute -on these thread pools. The futures are thread safe. +In addition, some concurrency and parallelism primitives are provided: +- `Moonpool.Fut` provides futures/promises that execute + on these thread pools. The futures are thread safe. +- `Moonpool.Chan` provides simple cooperative and thread-safe channels + to use within pool-bound tasks. They're essentially re-usable futures. + + On OCaml 5 (meaning there's actual domains and effects, not just threads), + a `Fut.await` primitive is provided. It's simpler and more powerful + than the monadic combinators. +- `Moonpool.Fork_join` provides the fork-join parallelism primitives + to use within tasks running in the pool. ## Usage