Commit graph

158 commits

Author SHA1 Message Date
Simon Cruanes
009855ce0d feat: add Pool.fork_join 2023-07-05 21:55:00 -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
1d23d2d7a1
rename Fut.await_exn to Fut.await 2023-06-20 22:43:33 -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
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
1e21157e8a
feat: add Chan again 2023-06-18 22:09:22 -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
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
d60bf3828b
fix: join_array on arrays of length=1 had a bound error 2023-06-15 11:42:13 -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
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
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
b084caea69
docs 2023-06-13 13:52:22 -04:00
Simon Cruanes
d766b362f1
feat fut: add infix, builds a INFIX as a 1st class module 2023-06-12 22:06:48 -04:00
Simon Cruanes
7c853861d8
feat fut: add join 2023-06-12 22:06:43 -04:00
Simon Cruanes
0177d6aee7
fix fut: actually run all map/bind callbacks if pool is provided 2023-06-12 22:06:18 -04:00
Simon Cruanes
5e9470b750
comment 2023-06-11 00:06:50 -04:00
Simon Cruanes
e8ba4feea1
expose Atomic 2023-06-10 00:21:46 -04:00
Simon Cruanes
7ee064fc11
more docs on Blocking_queue 2023-06-10 00:06:38 -04:00
Simon Cruanes
b4f0c1572e
expose a simple blocking queue, with a controlled API. 2023-06-10 00:02:50 -04:00
Simon Cruanes
0a4d87816d
remove chan for now, not ready 2023-06-09 23:59:11 -04:00
Simon Cruanes
e820cb83ea
fix 2023-06-09 15:11:25 -04:00
Simon Cruanes
ab2d8d4956
perf: account for main domain when starting background domains 2023-06-08 15:08:07 -04:00
Simon Cruanes
ed4cc2550b
a warning in doc 2023-06-08 14:44:15 -04:00
Simon Cruanes
d2521472c0
refactor: rename little blocking queue 2023-06-08 14:22:35 -04:00
Simon Cruanes
b9ee0d71a1
add Chan, an atomic unbounded channel 2023-06-08 00:19:37 -04:00
Simon Cruanes
0b70060c40
perf pool: use relax() in spin loop 2023-06-08 00:19:24 -04:00
Simon Cruanes
259fee2722
perf fut: use Domain_.relax in spin loops 2023-06-08 00:07:54 -04:00
Simon Cruanes
bd1ada40d4
Fut: add Infix_local 2023-06-06 23:34:06 -04:00
Simon Cruanes
e618739442
s_queue: improve try_pop, add try_push 2023-06-06 23:20:52 -04:00
Simon Cruanes
adfa1e62cb
fix(pool): make sure the work queue is closed properly
this way we can't submit new jobs after the pool has been shutdown.
2023-06-05 13:04:10 -04:00
Simon Cruanes
6ffbd15a34
add Pool.size 2023-06-02 12:05:39 -04:00
Simon Cruanes
4147d29383
doc 2023-06-01 22:45:40 -04:00
Simon Cruanes
b7ba8d0e9b
doc 2023-06-01 22:37:56 -04:00
Simon Cruanes
d9eee6eb50
details 2023-06-01 22:34:14 -04:00
Simon Cruanes
2d9e834ccc
small fix 2023-06-01 22:14:44 -04:00
Simon Cruanes
d87dff529d
split into multiple files 2023-06-01 22:04:06 -04:00
Simon Cruanes
835eaf84c4
global thread loop wrappers 2023-06-01 21:54:22 -04:00