package moonpool
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=7194610ba86525f05f9cda15c6f28790ab15804e840bc71269f4590d81d8a390
sha512=625092e840589f2fd46ab88cf72714f4b415d8de0d50e46d4c202149ad7d4e38416a2c5f0100addc23781d6000d3951682b22a915af7f0f69d260d7cf4add9de
doc/moonpool.dpool/Moonpool_dpool/index.html
Module Moonpool_dpool
Source
Static pool of domains.
These domains are shared between all the pools in moonpool. The rationale is that we should not have more domains than cores, so it's easier to reserve exactly that many domain slots, and run more flexible thread pools on top (each domain being shared by potentially multiple threads from multiple pools).
The pool should not contain actual domains if it's not in use, ie if no runner is presently actively using one or more of the domain slots.
NOTE: Interface is still experimental.
Number of domains in the pool when all domains are active.
Low level interface for resouce handling
Be very cautious with this interface, or resource leaks might occur.
run_on i f
runs f()
on the domain with index i
. Precondition: 0 <= i < n_domains()
. The thread must call decr_on
with i
once it's done.
Signal that a thread is stopping on the domain with index i
.
run_on_and_wait i f
runs f()
on the domain with index i
, and blocks until the result of f()
is returned back.