Commit graph

318 commits

Author SHA1 Message Date
Simon Cruanes
03212e7478 fork-join: add both_ignore 2023-07-05 21:55:00 -04:00
Simon Cruanes
43487ebe49 add Fork_join.all_{list,init}
primitives to fork-join over n tasks
2023-07-05 21:55:00 -04:00
Simon Cruanes
45838d9607 fix: in fork-join, start sub-tasks within a handler 2023-07-05 21:55:00 -04:00
Simon Cruanes
3b9f56a138 add test for fork_join 2023-07-05 21:55:00 -04:00
Simon Cruanes
309424a58f move fork join into its own module 2023-07-05 21:55:00 -04:00
Simon Cruanes
009855ce0d feat: add Pool.fork_join 2023-07-05 21:55:00 -04:00
Simon Cruanes
2bbb4185a4
readme 2023-06-24 15:53:05 -04:00
Simon Cruanes
456a31c939
dune 2023-06-24 15:06:41 -04:00
Simon Cruanes
9f04d254af
feat: Pool.run_wait_block can return a value now 2023-06-24 15:06:40 -04:00
Simon Cruanes
e4b159c695
fut: fix warnings 2023-06-24 15:05:56 -04:00
Simon Cruanes
ab718b22f9
add Pool.run_wait_block; rename Pool.run into Pool.run_async 2023-06-24 14:50:43 -04:00
Simon Cruanes
ffd37642b9
Merge pull request #4 from c-cube/wip-await
await
2023-06-20 22:59:08 -04:00
Simon Cruanes
2b6387e388
mdx for 5.0 only 2023-06-20 22:44:06 -04:00
Simon Cruanes
76ec06942a
doc: add more to the readme 2023-06-20 22:44:05 -04:00
Simon Cruanes
3676d1e28d
test: remove dep 2023-06-20 22:43:58 -04:00
Simon Cruanes
1d23d2d7a1
rename Fut.await_exn to Fut.await 2023-06-20 22:43:33 -04:00
Simon Cruanes
68d3487ca8
CI 2023-06-20 22:43:15 -04:00
Simon Cruanes
4fd6154b56
refactor suspend
do not wrap each step in a new handler; using Effects.Deep we only wrap
the entrypoint of the task, and subsequent `continue` get scheduled
as-is.
2023-06-20 22:43:15 -04:00
Simon Cruanes
f98bcf2f08
add test for await 2023-06-20 22:43:14 -04:00
Simon Cruanes
62777e1112
test: add tests for Fut.await 2023-06-20 22:43:14 -04:00
Simon Cruanes
e26029ab90
feat: add Fut.await and Fut.await_exn for OCaml >= 5.0
this uses suspension (based on `Suspend_`) to wait for completion of the
future.
2023-06-20 22:43:13 -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
eab774813d
test: add load test for chans 2023-06-20 22:43:12 -04:00
Simon Cruanes
25e8dcdbce
add ocaml-coc 2023-06-20 12:33:23 -04:00
Simon Cruanes
1e21157e8a
feat: add Chan again 2023-06-18 22:09:22 -04:00
Simon Cruanes
22ccb76d66
readme 2023-06-16 09:18:29 -04:00
Simon Cruanes
67bc47181c
fix: in blocking queue, pop works on a non empty closed queue 2023-06-15 22:24:58 -04:00
Simon Cruanes
4e112e1591
add some property tests 2023-06-15 21:34:33 -04:00
Simon Cruanes
7707a7c1ce
prepare for 0.2 2023-06-15 14:26:28 -04:00
Simon Cruanes
b8588f2d65
feat: add Fut.for_list 2023-06-15 11:59:10 -04:00
Simon Cruanes
d74c6da3fa
fix(fut): fix bug when calling wait_list [] 2023-06-15 11:58:55 -04:00
Simon Cruanes
39712e7f54
test: regression test for bug in wait_list on empty list 2023-06-15 11:58:32 -04:00
Simon Cruanes
d60bf3828b
fix: join_array on arrays of length=1 had a bound error 2023-06-15 11:42:13 -04:00
Simon Cruanes
c8235f463d
test: add regression test for bug in join_array 2023-06-15 11:42:03 -04:00
Simon Cruanes
fc3d2d2645
add around_task to Pool.create 2023-06-15 11:23:55 -04:00
Simon Cruanes
b451fde853
add Pool.shutdown_without_waiting 2023-06-15 10:52:17 -04:00
Simon Cruanes
059ee8a1d5
add Pool.num_tasks 2023-06-15 10:35:41 -04:00
Simon Cruanes
f76b713556
add Fut.is_done 2023-06-15 10:24:20 -04:00
Simon Cruanes
f18ed688e9
add Blocking_queue.size 2023-06-15 10:20:33 -04:00
Simon Cruanes
debdc8fc31
add Fut.for_array to easily iterate on an array in parallel 2023-06-14 11:38:01 -04:00
Simon Cruanes
826d1f15c8
add test 2023-06-14 11:34:44 -04:00
Simon Cruanes
dd5a177a5f
add Fut.get_or_fail{,_exn} 2023-06-14 11:33:24 -04:00
Simon Cruanes
483392986c
perf: limit number of work queues in pool 2023-06-14 11:21:11 -04:00
Simon Cruanes
1d5e962d87
Merge pull request #2 from c-cube/perf-pool-2023-06-12
perf: improve pool
2023-06-13 22:03:46 -04:00
Simon Cruanes
b084caea69
docs 2023-06-13 13:52:22 -04:00
Simon Cruanes
82af5497f8
pool: do some spinning in run, not in workers 2023-06-13 13:52:22 -04:00
Simon Cruanes
939c6e117c
perf: a few retries in the pool 2023-06-13 13:52:22 -04:00
Simon Cruanes
bde69ba33f
perf: use multiple queues and non-blocking work stealing from them 2023-06-13 13:52:22 -04:00
Simon Cruanes
a9a51b08c4
test t_tree_futs: env J to set size of pool 2023-06-12 23:17:07 -04:00
Simon Cruanes
9a922088fd
test t_tree_futs: run GC stats thread, for trace 2023-06-12 23:17:07 -04:00