Simon Cruanes
223f22a0d9
breaking: move fork-join into sub-library moonpool.forkjoin
2024-02-11 16:39:44 -05:00
Simon Cruanes
0f1f39380f
CI
2024-02-11 16:39:44 -05:00
Simon Cruanes
37c42b68bc
fix
2024-02-11 16:39:44 -05:00
Simon Cruanes
b0fe279f42
more internal refactor
2024-02-11 16:39:44 -05:00
Simon Cruanes
cc8860c6e3
split into moonpool.private and moonpool; format; remove DLA
2024-02-11 16:39:43 -05:00
Simon Cruanes
ec28758fdc
doc
2024-02-11 16:37:32 -05:00
Simon Cruanes
fdd2df0572
readme
2024-02-09 10:11:20 -05:00
Simon Cruanes
9876951748
readme
2024-02-09 10:08:03 -05:00
Simon Cruanes
381a775d28
fix some @since tags
2024-02-09 10:07:09 -05:00
Simon Cruanes
e56dbc6a09
fix build
2024-02-07 15:49:01 -05:00
Simon Cruanes
6d92d14fcb
CI
2024-02-07 15:32:44 -05:00
Simon Cruanes
27b213e30f
tracing: add optional name for pools
2024-02-07 13:31:48 -05:00
Simon Cruanes
6ed870aa9c
Merge pull request #19 from c-cube/wip-tracing-support
...
wip: tracing support
2024-02-06 22:24:10 -05:00
Simon Cruanes
8d83d5b691
perf: reduce size of Fut again
2024-01-30 17:06:20 -05:00
Simon Cruanes
4abc334ab3
fix
2024-01-30 16:38:31 -05:00
Simon Cruanes
8e9564a6f7
compat
2024-01-30 16:26:29 -05:00
Simon Cruanes
ef7d370060
more tracing for Fut
2024-01-30 16:25:31 -05:00
Simon Cruanes
192f866ea1
chore: install depopts in CI
2024-01-30 16:12:14 -05:00
Simon Cruanes
dd9206b5b8
use new tracing support in tests and benchs
2024-01-30 16:12:03 -05:00
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
469cb89ecd
feat: add Fut.Advanced.barrier_on_abstract_container_of_futures
...
this is a good building block for waiting on multiple futures.
2023-12-22 13:14:05 -05:00
Simon Cruanes
6aa8a2e7d2
try to speed up CI
2023-12-06 21:44:42 -05:00
Simon Cruanes
0e6e581f63
update opam file
2023-12-04 00:20:27 -05:00
Simon Cruanes
15e314129f
Merge branch 'br-0.5.1'
2023-11-27 22:13:34 -05:00
Simon Cruanes
019cea2d5c
prepare for 0.5.1
2023-11-24 23:59:10 -05:00
Simon Cruanes
a540c091e6
fix too early exit in Ws_pool
...
when shutting down the pool, workers should check `self.active`
only when they have no local task, failed to steal tasks,
and found the main queue to be empty. Basically we check `self.active`
only just before we wait on the condition.
2023-11-24 23:58:08 -05:00
Simon Cruanes
9513b82bd0
update test
2023-11-24 23:58:03 -05:00
Simon Cruanes
dd81def70a
add another test
2023-11-24 23:57:59 -05:00
Simon Cruanes
2d306c91b2
fix too early exit in Ws_pool
...
when shutting down the pool, workers should check `self.active`
only when they have no local task, failed to steal tasks,
and found the main queue to be empty. Basically we check `self.active`
only just before we wait on the condition.
2023-11-24 23:12:22 -05:00
Simon Cruanes
16663651d6
update test
2023-11-24 23:12:20 -05:00
Simon Cruanes
b58041153a
add another test
2023-11-24 22:56:33 -05:00
Simon Cruanes
1c94c59d88
feat: add Fut.map_list
2023-11-17 12:41:29 -05:00
Simon Cruanes
9de83bde6a
changelog
2023-11-08 15:02:32 -05:00
Simon Cruanes
3f9600ea4d
CI: more lenient timeout
2023-11-08 12:41:51 -05:00
Simon Cruanes
fd2102c7fe
prepare for 0.5
2023-11-08 12:38:40 -05:00
Simon Cruanes
f50ffe9891
Merge pull request #12 from c-cube/wip-ws-2023-10-25
...
implement proper work-stealing pool
2023-11-08 12:11:46 -05:00
Simon Cruanes
3f7ed7b6b8
moonpool: expose Fut.{spawn_on_current_runner,await}
2023-11-08 12:02:13 -05:00
Simon Cruanes
989c012f77
fix warnings
2023-11-08 12:02:13 -05:00
Simon Cruanes
62e8336d84
update tests and benchs for new Fut API
2023-11-08 12:02:13 -05:00
Simon Cruanes
59ae1068fd
breaking: fut: only have module Infix
...
we keep `Infix_local` as a deprecated alias to it for now
2023-11-08 12:02:13 -05:00
Simon Cruanes
d4e5e811bb
breaking: fut: change behavior of ?on
...
combinators that take `?on` will now check if they can use the current
runner if `?on:None` is passed. If no runner is passed and they're run
from outside a runner, they will just run in the relevant callback or on
the current thread.
2023-11-08 12:02:13 -05:00
Simon Cruanes
9709f88d5f
breaking: fut: join does not take ?on anymore
2023-11-08 12:02:13 -05:00
Simon Cruanes
9cb7781a2e
feat: fut: add spawn_on_current_runner
2023-11-08 12:02:13 -05:00
Simon Cruanes
0a432585c6
fix: in WS_pool, only schedule in worker queues in some cases
...
only do it if we actually want to spawn the task on pool A while running
on a worker of A (not a worker on B).
2023-11-08 12:02:13 -05:00
Simon Cruanes
245bfd9b7b
test: regression test for bug
2023-11-08 12:02:13 -05:00
Simon Cruanes
d2be2db0ef
perf fork-join: in both f g only run f in the background
...
`g` can run immediately on same thread, otherwise we just suspend the
computation and start a new task for nothing.
2023-11-08 11:38:15 -05:00
Simon Cruanes
6e6a2a1faa
feat runner: add get_current_runner
...
this relies on TLS to access the current pool really quickly.
2023-11-08 11:38:15 -05:00
Simon Cruanes
6fe7076099
update doc and readme
2023-11-08 11:36:10 -05:00
Simon Cruanes
2073c600c4
add Moonpool.run_async
2023-11-08 11:36:10 -05:00
Simon Cruanes
72f289af84
refactor: use a fixed size work-stealing deque
...
if it's full, tasks overflow into the main queue.
2023-11-08 11:36:10 -05:00