23 · Concurrencia
Resultados paralelos nombrados
Las tareas nombradas en parallel producen un record tipado tras la unión estructurada. Cada tarea captura el alcance exterior; las etiquetas no son variables para tareas hermanas. Los fallos cancelan y esperan cooperativamente a las hermanas. Se rechazan resultados transitivamente lineales.
En esta página
Las tareas nombradas en parallel producen un record tipado tras la unión estructurada. Cada tarea captura el alcance exterior; las etiquetas no son variables para tareas hermanas. Los fallos cancelan y esperan cooperativamente a las hermanas. Se rechazan resultados transitivamente lineales.
Ejemplo completo
Ejecuta este ejemplo localmente con la CLI instalada. El playground del navegador no proporciona el scheduler del host.
Resultados paralelos nombrados.
// 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
Requiere la CLI o el host de Zolo; ábrelo en el playground o ejecútalo localmente.
Reglas y comportamiento
Tareas paralelas y plazos · Documentación
Desde un checkout del repositorio:
zolo examples/features/16-concurrency/16-named-parallel-results.zolo
Consulta también