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
(go-nursery nurse f &opt value)
Spawn a fiber into a nursery, similar to ev/go.
(join-nursery nurse)
Suspend the current fiber until the nursery is emptied.
(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.
(nursery)
Group a number of fibers into a single object for structured concurrency
(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.
(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)
.
(pmap f data &opt n-workers)
Map f
over data in parallel, optionally limiting parallelism to n
workers.
(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.
(pmap-limited f data n-workers)
Similar to pmap-full, but only runs work n-ways parallel.
(spawn-nursery nurse & body)
Similar to ev/spawn but associate spawned fibers with a nursery
(wait-cancel & body)
Wait forever until the current fiber is canceled, and then run some cleanup code.