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