Simon Cruanes
37751c79e4
introduce Fiber.Nursery.t; change local storage accordingly
2024-03-04 20:49:34 -05:00
Simon Cruanes
cec77d2ee9
doc
2024-03-04 20:49:34 -05:00
Simon Cruanes
9d392b1ba6
fix
2024-03-01 14:58:28 -05:00
Simon Cruanes
4195d4d61c
feat: add Task_local_storage.get_opt
2024-02-29 15:29:08 -05:00
Simon Cruanes
7b5ecffc8c
add Fiber.spawn_top_or_link
2024-02-29 15:08:06 -05:00
Simon Cruanes
39cdc37613
feat fiber: expose add_on_cancel/remove_on_cancel
...
also make it more robust by using a map
2024-02-28 22:50:19 -05:00
Simon Cruanes
a2ea24551b
compat
2024-02-27 22:48:23 -05:00
Simon Cruanes
42d16465c3
compat
2024-02-27 22:35:07 -05:00
Simon Cruanes
c39435d8eb
fix fifo_pool: resume can be called from another worker
...
we might schedule on worker 1, suspend, resume on worker 2,
and resume from there.
2024-02-27 22:31:25 -05:00
Simon Cruanes
bfd70dc5c2
fix fiber: spawn sub-fiber with a copy of current local storage
2024-02-27 22:11:50 -05:00
Simon Cruanes
856dc85d41
refactor ws_pool: do not nest effect handlers; fixes
...
- we differentiate between starting a task and resuming a task
- we dynamically find if we're on one of the pool's runner
in `resume`/`run_another_task` in the main suspend handler
(this way we can use the local work stealing queue
if we're in the same pool, even if we're not on the
worker that ran the "suspend" call itself)
2024-02-27 21:23:37 -05:00
Simon Cruanes
b9cf0616b8
fifo pool: format, use with_suspend unconditionally
2024-02-27 21:23:02 -05:00
Simon Cruanes
e94c7999de
suspend: provide dummy with_suspend_handler on 4.xx
2024-02-27 21:22:48 -05:00
Simon Cruanes
ed171c1171
fix ws_pool: make sure we capture the current worker before suspend
2024-02-23 20:54:51 -05:00
Simon Cruanes
8a7cfb6fb0
feat fiber: add helpers, expose any
2024-02-21 00:53:07 -05:00
Simon Cruanes
83ae0e7a4e
do not expose ?ls for Fut.spawn
2024-02-20 13:51:41 -05:00
Simon Cruanes
8614d4be40
simplify implem for background_thread for now
2024-02-20 13:45:05 -05:00
Simon Cruanes
4bf456e1ea
feat: add Background_thread
...
a version of `Fifo_pool` optimized for a single thread.
2024-02-20 13:43:06 -05:00
Simon Cruanes
8bfe76b3e0
improve docs for moonpool_lwt; fix race condition
2024-02-17 12:40:36 -05:00
Simon Cruanes
0df0642dd1
lwt: add TCP client/server functions that use lwt channels
2024-02-17 12:40:36 -05:00
Simon Cruanes
b991a78f3e
lwt: trace the function that performs actions in batch
2024-02-17 12:40:36 -05:00
Simon Cruanes
36c6e8e900
fix build, remove some debug
2024-02-17 12:40:36 -05:00
Simon Cruanes
6bf58e3e62
perf: quicker check for []
2024-02-17 12:40:36 -05:00
Simon Cruanes
e0f5b5bbcb
fix build
2024-02-17 12:40:36 -05:00
Simon Cruanes
6f707c869c
chore
2024-02-17 12:40:36 -05:00
Simon Cruanes
f6d67028cf
feat lwt: non-blocking TCP_client.with_connect
2024-02-17 12:40:35 -05:00
Simon Cruanes
930e09e5b3
lwt: basic IO wrappers, simple TCP server wrapper
2024-02-17 12:40:35 -05:00
Simon Cruanes
d248a569f6
feat: progress on moonpool-lwt
2024-02-17 12:40:35 -05:00
Simon Cruanes
90850ae38c
wip: moonpool lwt
2024-02-17 12:40:35 -05:00
Simon Cruanes
fbc7679d05
wip: add moonpool-lwt
2024-02-17 12:40:35 -05:00
Simon Cruanes
a5eef687c8
expose Tracing
2024-02-17 12:40:35 -05:00
Simon Cruanes
cf8555bcec
revert: remove name on futures and tasks
...
async tracing will be more robust, and is enabled by
task local storage
2024-02-17 12:40:02 -05:00
Simon Cruanes
4ab76d5084
details
2024-02-14 14:57:22 -05:00
Simon Cruanes
2a42f15e37
feat: pass task local storage in run_async
...
the idea is that we could use this to pass storage
around in `Fut` combinators, but I'm not sure that's actually
a good idea.
2024-02-14 14:54:18 -05:00
Simon Cruanes
e8e61f6b30
feat: improve task local storage
2024-02-12 12:04:36 -05:00
Simon Cruanes
41b73462dd
fix in task_local_storage
2024-02-12 11:33:09 -05:00
Simon Cruanes
b32bf3ea3c
fix in task local storage
2024-02-12 11:30:29 -05:00
Simon Cruanes
3c8bb7d5e8
cleanup
2024-02-11 16:40:15 -05:00
Simon Cruanes
712a030206
refactor: streamline suspend, make most of it 5.0-dependent
2024-02-11 16:40:15 -05:00
Simon Cruanes
f7449416e4
restore DLA
2024-02-11 16:40:15 -05:00
Simon Cruanes
c8e99fd7ee
cleanup
2024-02-11 16:40:15 -05:00
Simon Cruanes
e9c09406ba
feat: add structured concurrency moonpool.fib
2024-02-11 16:40:14 -05:00
Simon Cruanes
13d26783c7
fix
2024-02-11 16:40:14 -05:00
Simon Cruanes
44c155751c
fix
2024-02-11 16:40:14 -05:00
Simon Cruanes
e8cc87f1f5
fixes
2024-02-11 16:40:14 -05:00
Simon Cruanes
65fd89708e
add task_local_storage to core, modify how suspend works
2024-02-11 16:40:14 -05:00
Simon Cruanes
2f11fd75df
feat: add Exn_bt to core
2024-02-11 16:40:14 -05:00
Simon Cruanes
b8ce0c9fe3
make moonpool.forkjoin optional (only on OCaml >= 5.0)
2024-02-11 16:40:14 -05:00
Simon Cruanes
49c6cd3f53
doc
2024-02-11 16:40:14 -05:00
Simon Cruanes
e14fef2834
remove deprecated Moonpool.Pool
2024-02-11 16:39:44 -05:00