Saltar al contenido

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.

16-named-parallel-results.zolo
Playground
// 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

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br