Corso di Raku / Programmazione funzionale, concorrente, reattiva e web / Programmazione concorrente / Channel / Ricevere oltre la fine

Quiz — Ricevere oltre la fine

Di un channel sono stati ricevuti tutti i valori inviati. Che cosa succede al .receive successivo se il channel è ancora aperto (mai chiuso)?

0Solleva X::Channel::ReceiveOnClosed
1Blocca, aspettando un valore che potrebbe non arrivare mai
0Restituisce Nil
0Restituisce un elenco vuoto ()

Su un channel aperto, .receive non può sapere se un altro valore stia arrivando, quindi aspetta — potenzialmente per sempre, se il produttore si è fermato senza chiudere. L’eccezione X::Channel::ReceiveOnClosed è il caso del channel chiuso: solo un channel chiuso e vuoto fallisce in fretta invece di bloccare.

Ricevere oltre la fine   |   Ricevete un valore