All pastes #9NzSPMQ6dX Raw Edit

hew paste

public hew v1 · immutable
#9NzSPMQ6dX ·published 2026-06-04 22:54 UTC ·by slepp
rendered paste body
// Structured concurrency in Hew: a scope owns its child tasks and joins them// all before the scope expression returns. Tasks are forked with `fork { ... }`// and run on real OS threads; the enclosing `scope { }` is the join boundary.//// Constraints in this build: spawning happens inside an actor handler (which// carries the execution context); each forked function is a zero-argument,// unit-returning free function. Nested scopes compose, and an empty// `after(d) {}` arms a cancellation deadline on the surrounding scope.fn fetch_orders() {    println("fetched orders");}fn fetch_inventory() {    println("fetched inventory");}fn settle() {    println("reconciled");}actor _Pipeline {    receive fn run() -> i64 {        // Outer scope: two siblings fork concurrently and BOTH join here.        scope {            after(5s) {}            fork {                fetch_orders();            }            fork {                fetch_inventory();            }            // Nested scope: its own child joins before the outer scope drains.            scope {                fork {                    settle();                }            };        };        0    }}fn main() -> i64 {    let p = spawn _Pipeline;    match await p.run() {        Ok(code) => code,        Err(_e) => 1,    }}