Commit graph

11 commits

Author SHA1 Message Date
Simon Cruanes
092ad5f2ce
feat: support for trace as a depopt
one can now give tasks an optional string "name". If `Trace`
is present (installed) and enabled, this results in
a span around the task's execution. This also plays ok
with `await` and other effect-based primitives.
2024-01-30 16:10:11 -05:00
Simon Cruanes
00a5cfc8ba fix: rename Thread_local_storage_ to not collide with the library 2023-11-08 09:41:57 -05:00
Simon Cruanes
e67bffeca5
ws_pool: use TLS for quick worker storage access; reduce contention 2023-10-27 15:18:50 -04:00
Simon Cruanes
e67ab53f9f
feat pool: rewrite main pool to use work stealing
there's a single blocking queue, and one WS_queue per worker. Scheduling
into the pool from a worker (e.g. via fork_join or explicitly) will push
into this WS queue; otherwise it goes into the main blocking queue.

Workers will always try to empty their local queue first, then try to
work steal, then block on the main queue.
2023-10-25 00:19:34 -04:00
Simon Cruanes
b07d460b3f
port cpp.ml from containers, replace previous codegen with it
now OCaml 5-only features are truly available only on OCaml 5, instead
of just relying on the user reading the docstring.
2023-07-09 19:49:24 -04:00
Simon Cruanes
a266a42628 support for domain-local-await when installed 2023-07-05 22:19:18 -04:00
Simon Cruanes
52a04701ed
feat: add Suspend_ module, using effects, on OCaml >= 5.0 2023-06-20 22:43:13 -04:00
Simon Cruanes
e8ba4feea1
expose Atomic 2023-06-10 00:21:46 -04:00
Simon Cruanes
d87dff529d
split into multiple files 2023-06-01 22:04:06 -04:00
Simon Cruanes
5dcfab7cce
require 4.08; add infix operators; add dep on Either 2023-06-01 21:34:27 -04:00
Simon Cruanes
1619f8b773
initial commit 2023-05-30 23:03:05 -04:00