package picos
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=343a8b4759239ca0c107145b8e2cc94c14625fecc0b0887d3c40a9ab7537b8da
sha512=db22b0a5b3adc603c0e815c9011c779f892b9ace76be018b2198d3e24a7d96727c999701025fe5a5fd07d0b452cb7286fc50c939aba0e4dce809941e9ebc12a6
doc/picos.threaded/Picos_threaded/index.html
Module Picos_threaded
Source
Basic Thread
based Picos
compatible scheduler for OCaml 4.
ℹ️ This scheduler implementation is mostly meant as an example and for use in testing libraries implemented in Picos
.
Briefly:
current
returns the current fiber from the per thread state.spawn
creates a newThread
for each fiber.yield
just callsThread.yield
.cancel_after
uses a per-domain background thread that runs aUnix.select
loop to cancel computations.await
uses a per thread mutex and condition to suspend the thread.
⚠️ This scheduler is probably suitable for simple applications that do not spawn a lot of fibers. If an application uses a lot of short lived fibers, then a more sophisticated scheduler implementation using some sort of thread pool will likely perform significantly better.
⚠️ This scheduler implementation also works on OCaml 5, of course, but on OCaml 5 a scheduler that implements an effect handler directly is likely to perform better.
run main
runs the main
thunk with the scheduler. Returns after main
and all of the fibers spawned by main
have returned.
The optional forbid
argument defaults to false
and determines whether propagation of cancelation is initially allowed.