Végigmegyek a Példa szerint: Nem blokkoló csatornaműveletek
Ha jól értem, az első select
a default
esetet váltja ki, mert a messages
csatornán nincs semmi, és ha a default
eset nem létezne, akkor fatal error: all goroutines are asleep - deadlock!
hibát kapunk, nem?
Nos, nem tudok rájönni, hogyan tudom elindítani a második select
-ot, konkrétan a case messages <- msg:
-et
Ahogy gondoltam, a fogadással szemben kell működnie. Tehát ha van puffer 2 üzenethez, és a 3. üzenetet küldjük a csatornának, akkor az kiváltja a default
záradékot, de a messages
csatorna üres, akkor miért váltja ki a második kiválasztásnál a default
záradékot? És hogyan tudom aktiválni a case messages <- msg:
záradékot?