Raku-Kurs / Funktionale, nebenläufige, reaktive und Web-Programmierung / Nebenläufige Programmierung / Channels / Empfangen über das Ende hinaus

Quiz — Empfangen über das Ende hinaus

Von einem Kanal wurden alle gesendeten Werte empfangen. Was geschieht beim nächsten .receive, wenn der Kanal noch offen ist (nie geschlossen wurde)?

0Es wirft X::Channel::ReceiveOnClosed
1Es blockiert und wartet auf einen Wert, der vielleicht nie kommt
0Es liefert Nil
0Es liefert eine leere Liste ()

Auf einem offenen Kanal kann .receive nicht erkennen, ob noch ein Wert unterwegs ist, es wartet also — womöglich ewig, wenn der Erzeuger ohne Schließen aufgehört hat. Die Ausnahme X::Channel::ReceiveOnClosed gehört zum geschlossenen Fall: Nur ein geschlossener, leerer Kanal scheitert rasch, statt zu blockieren.

Kursnavigation

Empfangen über das Ende hinaus   |   Empfangen Sie einen Wert