package moonpool

  1. Overview
  2. Docs
Pools of threads supported by a pool of domains

Install

Dune Dependency

Authors

Maintainers

Sources

moonpool-0.4.tbz
sha256=6f4edc335dfa1a5d9349509b6dd7501b6f59f68cd743eceec42aacd8d27df57f
sha512=338d9f42c3306616953649600f54cefe3d57deacf8b809c56d402d0c510705f9a90b4ea68907fa5a52ad77d51f159575358891a1dfb8dfea69c7fad05f6676d2

CHANGES.md.html

0.4

  • add Fut.{reify_error,bind_reify_error}

  • full lifecycle for worker domains, where a domain will shutdown if no thread runs on it, after a short delay.

  • fix: generalize type of create_arg

  • perf: in Bb_queue, only signal condition on push if queue was empty

0.3

  • add Fork_join for parallelizing computations. This is only available on OCaml 5.x because it relies on effects.

  • add Fork_join.{for_,map_array,map_list}

  • add Fork_join.all_{list,init}

  • add Pool.with_

  • add a channel module

  • add Runner, change Pool to produce a Runner.t

  • add a Lock module

  • add support for domain-local-await when installed

  • add Fut.await for OCaml >= 5.0

  • fix: Fork_join.both_ignore now has a more general type

  • expose Suspend_ and its internal effect with an unstability alert. This is intended for implementors of Runner only.

  • port cpp.ml from containers, replace previous codegen with it. This will provide better flexibility for supporting multiple versions of OCaml in the future.

  • add Pool.run_wait_block; rename Pool.run into Pool.run_async

  • fix: in blocking queue, pop works on a non empty closed queue

0.2

  • add Fut.for_list

  • add around_task to Pool.create

  • add Pool.shutdown_without_waiting

  • add Pool.num_tasks

  • add Fut.is_done

  • add Blocking_queue.size

  • add Fut.for_array to easily iterate on an array in parallel

  • add Fut.get_or_fail{,_exn}

  • perf: limit number of work queues in pool

  • perf: use multiple queues and non-blocking work-stealing from them, in pool this improves the behavior for many small tasks by reducing contention on each queue

  • fix: fut: actually run all map/bind callbacks in pool if provided

0.1.1

  • fix(fut): fix bug when calling wait_list []

  • fix: join_array on arrays of length=1 had a bound error

0.1

initial release

OCaml

Innovation. Community. Security.