Async/await-style concurrency and async iteration built on core.async.
Choosing an execution: async: use for async control flow, polling, and small or short computations; work may park, but must not block compute: use for heavy or long-running computation; do not block blocking: use for blocking I/O and other operations that block the current thread Executor implementations vary with the core.async version and JVM configuration.
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: use for async control flow, polling, and small or short computations; work may park, but must not block
compute: use for heavy or long-running computation; do not block
blocking: use for blocking I/O and other operations that block the current thread
Executor implementations vary with the core.async version and JVM configuration.
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 donecljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |