Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Конкурентне програмування / Канали / Читання після кінця
Тест — Читання після кінця
У каналі отримано всі надіслані значення. Що станеться на
наступному .receive, якщо канал
усе ще відкритий (його ніколи не закривали)?
| 0 | Він кине X::Channel::ReceiveOnClosed |
| 1 | Він заблокує виконання, чекаючи на значення, яке може ніколи не прийти |
| 0 | Він поверне Nil |
| 0 | Він поверне порожній список () |
На відкритому каналі .receive не може
сказати, чи в дорозі ще одне значення, тож він чекає — потенційно вічно,
якщо виробник спинився, не закривши каналу. Виняток
X::Channel::ReceiveOnClosed стосується випадку
закритого каналу: лише закритий і порожній канал швидко
зазнає невдачі замість блокувати виконання.