Cursus Raku / Functioneel, concurrent, reactief en webprogrammeren / Concurrent programmeren / Channels / Ontvangen voorbij het einde

Quiz — Ontvangen voorbij het einde

Van een kanaal zijn alle verstuurde waarden ontvangen. Wat gebeurt er bij de volgende .receive als het kanaal nog open is (nooit gesloten)?

0Het werpt X::Channel::ReceiveOnClosed
1Het blokkeert en wacht op een waarde die misschien nooit komt
0Het geeft Nil terug
0Het geeft een lege lijst () terug

Op een open kanaal kan .receive niet zien of er nog een waarde onderweg is, dus wacht het — mogelijk eeuwig, als de producent gestopt is zonder te sluiten. De exceptie X::Channel::ReceiveOnClosed hoort bij het gesloten geval: alleen een gesloten, leeg kanaal faalt snel in plaats van te blokkeren.

Cursusnavigatie

Ontvangen voorbij het einde   |   Ontvang een waarde