Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Конкурентне програмування / Канали / Читання після кінця

Тест — Читання після кінця

У каналі отримано всі надіслані значення. Що станеться на наступному .receive, якщо канал усе ще відкритий (його ніколи не закривали)?

0Він кине X::Channel::ReceiveOnClosed
1Він заблокує виконання, чекаючи на значення, яке може ніколи не прийти
0Він поверне Nil
0Він поверне порожній список ()

На відкритому каналі .receive не може сказати, чи в дорозі ще одне значення, тож він чекає — потенційно вічно, якщо виробник спинився, не закривши каналу. Виняток X::Channel::ReceiveOnClosed стосується випадку закритого каналу: лише закритий і порожній канал швидко зазнає невдачі замість блокувати виконання.

Навігація курсом

Читання після кінця   |   Отримайте значення