Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Конкурентное программирование / Каналы / Закрытие канала
Тест — Закрытие канала
Что выведет следующая программа?
my $c = Channel.new;
$c.send(1);
$c.send(2);
$c.close;
say $c.list.elems;| 0 | 0 |
| 0 | 1 |
| 1 | 2 |
| 0 | будет ждать вечно |
.list собирает все значения, ещё остающиеся в канале, и
завершается, потому что канал закрыт. Было отправлено два значения,
поэтому .elems равно 2. Без
.close метод .list ждал бы вечно.