Janet 1.38.0-73334f3 Documentation
(Other Versions: 1.37.1 1.36.0 1.35.0 1.34.0 1.31.0 1.29.1 1.28.0 1.27.0 1.26.0 1.25.1 1.24.0 1.23.0 1.22.0 1.21.0 1.20.0 1.19.0 1.18.1 1.17.1 1.16.1 1.15.0 1.13.1 1.12.2 1.11.1 1.10.1 1.9.1 1.8.1 1.7.0 1.6.0 1.5.1 1.5.0 1.4.0 1.3.1 )

EV Utilities

Index

ev-utils/go-nursery ev-utils/join-nursery ev-utils/multithread-service ev-utils/nursery ev-utils/pcall ev-utils/pdag ev-utils/pmap ev-utils/pmap-full ev-utils/pmap-limited ev-utils/spawn-nursery ev-utils/wait-cancel


ev-utils/go-nursery function source

(go-nursery nurse f &opt value)

Spawn a fiber into a nursery, similar to ev/go.


ev-utils/join-nursery function source

(join-nursery nurse)

Suspend the current fiber until the nursery is emptied.


ev-utils/multithread-service function source

(multithread-service thread-main n-threads)

Run instances of a function over multiple threads. On failures, restart the failed thread. Normal function returns will not trigger a restart.


ev-utils/nursery function source

(nursery)

Group a number of fibers into a single object for structured concurrency


ev-utils/pcall function source

(pcall f n)

Call a function n times (in parallel) for side effects. Each function is called with an integer argument indicating a fiber index. Returns nil.


ev-utils/pdag function source

(pdag f dag &opt n-workers)

Executes a dag by calling f on every node in the graph. Can set the number of workers for parallel execution. The graph is represented as a table mapping nodes to arrays of child nodes. Each node will only be evaluated after all children have been evaluated. Modifying dag inside f will not affect the scheduling of workers. Returns a table mapping each node to the result of (f node).


ev-utils/pmap function source

(pmap f data &opt n-workers)

Map f over data in parallel, optionally limiting parallelism to n workers.


ev-utils/pmap-full function source

(pmap-full f data)

Function form of ev/gather. If any of the sibling fibers error, all other siblings will be canceled. Returns the gathered results in an array. data can be any indexed data structure.


ev-utils/pmap-limited function source

(pmap-limited f data n-workers)

Similar to pmap-full, but only runs work n-ways parallel.


ev-utils/spawn-nursery macro source

(spawn-nursery nurse & body)

Similar to ev/spawn but associate spawned fibers with a nursery


ev-utils/wait-cancel macro source

(wait-cancel & body)

Wait forever until the current fiber is canceled, and then run some cleanup code.