kw scope
Reserved keyword
The list of words: §1.4
Syntax
Scope = "scope" Block ;Grammar: App. A
Defined in
- 8.5 Structured concurrency — spawn is allowed only lexically inside scope { …
- 6.6 Panic — Causes: overflow, division by zero, out-of-bounds access, x!
- 8.2 Suspension points — A task can yield its thread only at suspension points
- 8.3 Task — Task<T, E> is a lazy computation.
- 10.4 Broadcast — local fan-out — Broadcast<T> delivers every published item to all current subscribers.
- 1.4 Keywords — Reserved (cannot be used as names)
Examples
let (a, b) = scope {
let ha = spawn loadA()
let hb = spawn loadB()
(ha.join()?, hb.join()?)
}let prices = Broadcast<Tick>(buffer: TICK_BUFFER, slow: .DropOldest, replay: 1)
scope {
spawn { for await t in Exchange.feed() { prices.publish(t) } }
spawn { for await t in prices.subscribe() { ui.render(t) } }
spawn { for await t in prices.subscribe() { stats.add(t) } }
}
impl Market {
rpc ticks() -> stream<Shared<Tick>, Lagged> => prices.subscribe() // for every client
}— 10.4 Broadcast — local fan-out
Related diagnostics
spawn-outside-scope, task-reuse