# worker/stream Streaming variant of `worker/send`: `yield` inside the handler pushes values incrementally onto the returned stream instead of producing one final result. ## Syntax
[worker/stream $w "handler-name" args...]
## Parameters - `$w` — worker or pool handle from `defworker` - `"handler-name"` — `@worker`-marked def (string) - args — job arguments, deep-copied like `worker/send` Read with `task/stream-next` (nil when done) or `task/stream-collect`; the stream is seqable, so `map`/`filter`/`reduce`/`for` pull items lazily. ## Examples
# worker file: count-up is @worker-marked and does `yield $i` in a loop
set s [worker/stream $w "count-up" 3]
[task/stream-next $s]        # → 1
[task/stream-collect $s]     # → @{ 2 3 }
## Returns A stream resource. The handler's final return value is dropped; a handler error ends the stream (earlier yields survive) and the worker keeps running. Argument errors (non-handle, stopped worker, unknown handler) return `%Err` as with `worker/send`. `worker/stop` finishes any open streams. ## See Also `worker/send`, `task/stream-next`, `task/stream-collect`, `defworker`