Commit graph

512 commits

Author SHA1 Message Date
Simon Cruanes
bb9418d86a
format with 0.27 2025-05-02 10:58:50 -04:00
Simon Cruanes
d50c227578
perf: await on immediately ready timer queues its task 2025-05-02 10:51:46 -04:00
Simon Cruanes
b46a048401
feat: add Moonpool.yield on ocaml 5
a mere alias to Picos.Fiber.yield
2025-05-02 10:33:30 -04:00
Simon Cruanes
ed0eda226c
prepare for 0.8 2025-04-17 16:35:19 -04:00
Simon Cruanes
2b00a0cea1
feat(exn_bt): in show/pp, do print the backtrace when present 2025-04-15 10:10:02 -04:00
Simon Cruanes
3a5eaaa44d
api(fut): public alias 'a Fut.t = 'a Picos.Computation.t 2025-03-19 17:40:17 -04:00
Simon Cruanes
f0ea8c294d
single system call for signal blocking 2025-03-13 15:42:04 -04:00
Simon Cruanes
dd88008a0a
fix: do not die if we fail to block a signal 2025-03-13 10:45:21 -04:00
Simon Cruanes
c51a0a6bd4
don't try to block sigstop 2025-03-13 10:45:01 -04:00
Simon Cruanes
deb96302e1
mli for worker loop 2025-03-13 10:07:39 -04:00
Simon Cruanes
a20208ec37
feat: block signals in workers if asked to 2025-03-13 10:07:20 -04:00
Simon Cruanes
389f237993
CI
Some checks failed
github pages / Deploy doc (push) Has been cancelled
Build and Test / build (push) Has been cancelled
Build and Test / build-compat (push) Has been cancelled
Build and Test / format (push) Has been cancelled
2025-02-21 14:02:05 -05:00
Simon Cruanes
06f3bdadb9
CI 2024-12-04 11:09:26 -05:00
Simon Cruanes
e481c48fe5
relax bound on picos to 0.5-0.6 2024-12-04 11:04:44 -05:00
Simon Cruanes
6ab9a691bf
feat hmap FLS: do not fail if run outside of a fiber 2024-12-04 10:27:04 -05:00
Simon Cruanes
ea1af6ed22
fix task local storage: type was too specific 2024-12-04 08:45:26 -05:00
Simon Cruanes
fa40cf8825
doc 2024-10-18 12:56:43 -04:00
Simon Cruanes
9a598b1efc
feat: add Fut.make_promise, have 'a promise = private 'a fut 2024-10-18 12:52:21 -04:00
Simon Cruanes
a143cc8489
feat fib: spawn_ignore now has ?on optional param
close #33
2024-10-03 13:17:07 -04:00
Simon Cruanes
20245d11f3
cleanup 2024-10-03 13:17:05 -04:00
Simon Cruanes
9b6a1d3718
Merge pull request #34 from c-cube/simon/fix-cancellation-issue-2024-10-03
fix fiber: use a single fut/computation in fibers
2024-10-03 13:07:51 -04:00
Simon Cruanes
a85bc80573
add example program from discuss 2024-10-03 12:43:52 -04:00
Simon Cruanes
6a44598a31
fix fiber: use a single fut/computation in fibers
otherwise we check the wrong computation for cancellation,
see https://discuss.ocaml.org/t/confused-about-moonpool-cancellation/15381
2024-10-03 12:37:51 -04:00
Simon Cruanes
f128e6c63a
Merge pull request #32 from c-cube/simon/update-chan-2024-09-25
update channels to make them bounded and more efficient
2024-09-26 21:38:09 -04:00
Simon Cruanes
c7f517cc28
bench prime: cli arg to pick chan size 2024-09-25 22:54:21 -04:00
Simon Cruanes
d4be74c1b7
cleanup 2024-09-25 22:54:18 -04:00
Simon Cruanes
e7ee012108
chan: go back to the lock-full version 2024-09-25 22:19:34 -04:00
Simon Cruanes
94998ea407
lock free chan 2024-09-25 22:17:41 -04:00
Simon Cruanes
854c3b819b
update tests and benchs 2024-09-25 22:17:31 -04:00
Simon Cruanes
3b8b4d040a
test: move t_chan_train to effect-based tests 2024-09-25 21:32:59 -04:00
Simon Cruanes
e7b4223332
bench_primes script 2024-09-25 21:32:53 -04:00
Simon Cruanes
35a69924d3
wip: change Moonpool.Chan so it's bounded
also push/pop require effects, the OCaml 4 version only allows
for try_push/try_pop.
2024-09-25 21:32:11 -04:00
Simon Cruanes
d8aa60558b
benchmark for a concurrent, channel-based, Erathostene prime sieve 2024-09-25 21:31:28 -04:00
Simon Cruanes
0d8767f45f
prepare for 0.7 2024-09-10 08:54:07 -04:00
Simon Cruanes
d7c8df43d9
no need to configure for us 2024-09-05 13:52:55 -04:00
Simon Cruanes
784127316d
add Moonpool_fiber.spawn_top_ignore 2024-09-05 13:25:25 -04:00
Simon Cruanes
9623e2d4b6
add Moonpool_io.main; make configure idempotent 2024-09-05 13:24:17 -04:00
Simon Cruanes
65bc3c97ff
alias for get_current_runner 2024-09-05 09:55:10 -04:00
Simon Cruanes
9b3c75124e
simon/move to picos (#30)
* feat: depend on picos, use picos.exn_bt

* refactor: remove dla

* non optional dependency on thread-local-storage

it's a dep of picos anyway

* wip: use picos computations

* disable t_fib1 test, way too flaky

* feat `fut`: wrap picos computations

* detail in fut

* gitignore

* refactor core: use picos for schedulers; add Worker_loop_

we factor most of the thread workers' logic in `Worker_loop_`,
which is now shared between Ws_pool and Fifo_pool

* github actions

* feat fut: add `on_result_ignore`

* details

* wip: port to picos

* test: wip porting tests

* fix fut: trigger failing to attach doesn't signal it

* fix pool: only return No_more_tasks when local and global q empty

* format

* chore: fix CI by installing picos first

* more CI

* test: re-enable t_fib1 but with a single core fifo pool

it should be deterministic now!

* fixes after reviews

* bump minimal OCaml version to 4.13

* use `exn_bt`, not `picos.exn_bt`

* feat: optional dep on hmap, for inheritable FLS data

* format

* chore: depend on picos explicitly

* feat: move hmap-fls to Fiber.Fls

* change API for local FLS hmap

* refactor: move optional hmap FLS stuff into core/task_local_storage

* add Task_local_storage.remove_in_local_hmap

* chore: try to fix CI

* format

* chore: CI

* fix

* feat: add `Fls.with_in_local_hmap`

* chore: depend on hmap for tests

* fix test for FLS

use the inheritable keys

* chore: CI

* require OCaml 4.14 :/

* feat: add `moonpool.sync` with await-friendly abstractions

based on picos_sync

* fix: catch TLS.Not_set

* fix: `LS.get` shouldn't raise

* fix

* update to merged picos PR

* chore: CI

* fix dep

* feat: add `Event.of_fut`

* chore: CI

* remove dep on now defunct `exn_bt`

* feat: add moonpool-io

* chore: CI

* version constraint on moonpool-io

* add Event.Infix

* move to picos_io
2024-09-04 12:04:27 -04:00
Simon Cruanes
e3f11be0b3
fix related to TLS 2024-08-27 10:15:40 -04:00
Simon Cruanes
14fdee0593
compat 2024-08-26 11:23:54 -04:00
Simon Cruanes
444f8a3acc
fix with actual TLS release 2024-08-26 11:20:27 -04:00
Simon Cruanes
265d4f73dd
move to thread-local-storage 0.2 with get/set API 2024-08-16 10:07:51 -04:00
Simon Cruanes
3388098fcc
smol comment on OCaml 4 2024-06-26 11:30:29 -04:00
Simon Cruanes
a4db1e67be
chore: use 5.2 in CI (#28)
chore: use 5.2 in CI
2024-05-20 16:26:33 -04:00
Simon Cruanes
0750e6af41
prepare for 0.6 2024-04-02 12:51:57 -04:00
Simon Cruanes
a127a4131a
test 2024-04-02 12:51:57 -04:00
Simon Cruanes
83ada948aa
test: do not run lwt tests on mac OS for now 2024-04-02 12:51:57 -04:00
Simon Cruanes
a1814cadb4
lwt test 2024-04-02 12:51:57 -04:00
Simon Cruanes
cf6b20a979
update fiber tests to try to be more deterministic 2024-04-02 12:51:57 -04:00