Liking cljdoc? Tell your friends :D

com.xadecimal.async-style

Async/await-style concurrency and async iteration built on core.async.

Choosing an execution: async: an IOC core.async go block for async control flow, await, polling, and short non-blocking work; it does not use virtual threads blocking: core.async io-thread where available; current core.async uses a virtual thread on Java 21+ and cached platform threads otherwise compute: Clojure's fixed Agent pool for heavy or long-running CPU work; do not block, park, or wait Executor implementations may vary with the core.async version, JVM capabilities, and executor customization.

Core terms: settle(d): deliver one result and close the channel; settling nil closes without delivering because core.async channels cannot contain nil fulfill(ed): deliver a value without closing the channel, leaving it open for additional values promise-chan: a single-result core.async channel used for async-style execution results and cooperative cancellation producer settlement: async, blocking, and compute wait for one returned promise-like single-result value before settling their own result; returned multi-value source channels remain channel values ownership: starting async, blocking, or compute inside a running execution creates an owned child unless started inside detach; ending the parent cancels unfinished owned children observation: awaiting or composing already-started work borrows it without transferring ownership or cancelling it async source: async-generator returns a cold, lifecycle-aware multi-value channel; consumption starts its producer in the consuming scope, and channel close or a nil take means done

Async/await-style concurrency and async iteration built on core.async.

Choosing an execution:
    async: an IOC core.async go block for async control flow, await, polling, and short non-blocking work; it does not use virtual threads
    blocking: core.async io-thread where available; current core.async uses a virtual thread on Java 21+ and cached platform threads otherwise
    compute: Clojure's fixed Agent pool for heavy or long-running CPU work; do not block, park, or wait
    Executor implementations may vary with the core.async version, JVM capabilities, and executor customization.

Core terms:
    settle(d): deliver one result and close the channel; settling nil closes without delivering because core.async channels cannot contain nil
    fulfill(ed): deliver a value without closing the channel, leaving it open for additional values
    promise-chan: a single-result core.async channel used for async-style execution results and cooperative cancellation
    producer settlement: async, blocking, and compute wait for one returned promise-like single-result value before settling their own result; returned multi-value source channels remain channel values
    ownership: starting async, blocking, or compute inside a running execution creates an owned child unless started inside detach; ending the parent cancels unfinished owned children
    observation: awaiting or composing already-started work borrows it without transferring ownership or cancelling it
    async source: async-generator returns a cold, lifecycle-aware multi-value channel; consumption starts its producer in the consuming scope, and channel close or a nil take means done
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close