8.7 Каналы и select
let (tx, rx) = chan<Job>(cap: JOB_QUEUE)
select {
recv job from rx => process(job)
send r to results => sent += 1
after IDLE_TIMEOUT => log.info("idle")
else => tick() // неблокирующий вариант
}tx.send(x)приостанавливается при заполненном буфере;cap: 0— рандеву.rx.recv() -> T | Closed. Канал закрыт, когда уничтожены всеSender.selectждёт первую готовую ветку; при нескольких готовых выбирает равновероятно. Веткаelseделаетselectнеблокирующим.
См. также
Исходник: docs/spec/oxl-standard.md