Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Immediate_runner (bug prone and didn't handle effects). Moonpool_fib.main can be used to handle effects in the main function.Moonpool.Poolmoonpool.fib with fibers. Fibers can use await and spawn other fibers that will be appropriately cancelled when their parent is.moonpool-lwt as an experimental bridge between moonpool and lwt. This allows moonpool runners to be used from within Lwt to perform background computations, and conversely to call Lwt from moonpool with some precautions.Exn_bt to coreRunner.dummymoonpool.forkjoin optional (only on OCaml >= 5.0)Fut.Advanced.barrier_on_abstract_container_of_futuresFut.map_listmoonpool.dpoolWs_pool: workers would exit before processing all remaining tasks upon shutdownBb_queue.transferBb_queue.to_{iter,gen,seq}Fifo_pool, a simple pool with a single blocking queue for workloads with coarse granularity tasks that value latency (e.g. a web server)Fut.spawn_on_current_runnerRunner.{spawn_on_current_runner, await}Moonpool itselfNo_runner: a runner that runs tasks synchronously in the callerthread-local-storage to implement work stealing and spawn_on_current_runnerFork_join.both, only one of the two sides schedules a task, the other runs in the current thread. This reduces scheduling overhead.Pool, now an alias to Fifo_poolFut.Infix_local and Fut.infix are gone, replaced with a simpler Fut.Infix module that tries to use the current runner for intermediate tasks.Fut.{reify_error,bind_reify_error}create_argBb_queue, only signal condition on push if queue was emptyFork_join for parallelizing computations. This is only available on OCaml 5.x because it relies on effects.Fork_join.{for_,map_array,map_list}Fork_join.all_{list,init}Pool.with_Runner, change Pool to produce a Runner.tLock moduleFut.await for OCaml >= 5.0Suspend_ and its internal effect with an unstability alert. This is intended for implementors of Runner only.cpp.ml from containers, replace previous codegen with it. This will provide better flexibility for supporting multiple versions of OCaml in the future.Pool.run_wait_block; rename Pool.run into Pool.run_asyncpop works on a non empty closed queueFut.for_listaround_task to Pool.createPool.shutdown_without_waitingPool.num_tasksFut.is_doneBlocking_queue.sizeFut.for_array to easily iterate on an array in parallelFut.get_or_fail{,_exn}wait_list []initial release