8.5 Структурная конкурентность
let (a, b) = scope {
let ha = spawn loadA()
let hb = spawn loadB()
(ha.join()?, hb.join()?)
}spawnдопустим только лексически внутриscope { … }или с явнымs.spawn(…), гдеs: &Scope.- Выход из
scopeждёт завершения всех дочерних задач. - Первая ошибка или паника дочерней задачи, не обработанная в теле, отменяет остальные дочерние задачи;
scopeвозвращает эту ошибку. Типscope— тип тела| Eдочерних задач| Panicked. - Фоновый scope узла
node.backgroundживёт до остановки узла; в нём выполняются шаги~>, хвосты пайплайнов (§10.6) и задачиnode.background.spawn(…). Задачи там при остановке узла получают отмену с дренированием.
Связанные диагностики
См. также
Исходник: docs/spec/oxl-standard.md