Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione concorrente / Channel / Chiudere un channel

Quiz — Chiudere un channel

Cosa stampa il programma seguente?

my $c = Channel.new;
$c.send(1);
$c.send(2);
$c.close;
say $c.list.elems;
00
01
12
0aspetta per sempre

.list raccoglie ogni valore ancora nel channel e finisce perché il channel è chiuso. Sono stati inviati due valori, quindi .elems è 2. Senza il .close, .list aspetterebbe per sempre.

Chiudere un channel   |   Ricevere oltre la fine