23 · Concorrência
Resultados paralelos nomeados
Tarefas nomeadas em parallel produzem um record tipado após a junção estruturada. Cada tarefa captura o escopo externo; rótulos não viram variáveis para tarefas irmãs. Falhas cancelam e aguardam as irmãs cooperativamente. Resultados transitivamente lineares são rejeitados.
Nesta página
Tarefas nomeadas em parallel produzem um record tipado após a junção estruturada. Cada tarefa captura o escopo externo; rótulos não viram variáveis para tarefas irmãs. Falhas cancelam e aguardam as irmãs cooperativamente. Resultados transitivamente lineares são rejeitados.
Exemplo completo
Execute este exemplo localmente com a CLI instalada. O playground do navegador não fornece o scheduler do host.
Resultados paralelos nomeados.
// Feature: typed named results from structured parallel tasks
// Each label names a result field; each RHS captures only the outer scope.
struct User { name: str }
async fn load_user() -> User = User { name: "Ada" }
async fn load_orders() -> [int] = [101, 102]
let user = "outer"
let data = parallel {
user = await load_user()
orders = await load_orders()
captured = user
}
print(data.user.name)
print(data.orders.len())
print(data.captured)
print(user)
// expected:
// Ada
// 2
// outer
// outer
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Regras e comportamento
Tarefas paralelas e prazos · Documentação
A partir de um checkout do repositório:
zolo examples/features/16-concurrency/16-named-parallel-results.zolo
Veja também