package picos
Pico scheduler framework
Install
Dune Dependency
Authors
Maintainers
Sources
picos-0.3.0.tbz
sha256=544804c0bde4b29764f82f04e7defed7c06bc43e5a6ce3f7fdc326cb54a7f066
sha512=4c93427e477fb52374a554a8b9c4c92836a9b5899161275d1473269ab526a1f59177209140631ed763a55be375855dea12f076e18bf4124522414986c0e257be
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 ~forbid main
runs the main
thunk with the scheduler. Returns after main
and all of the fibers spawned by main
have returned.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>