Очередь — часть capacity contract
Unbounded channel превращает overload в рост памяти и устаревшую работу. Конечная очередь задаёт максимум ожидания; `try_send` немедленно отклоняет избыток, а blocking send применяет backpressure.
rust / УРОВЕНЬ 4
ТЕОРИЯ / ВОСПРОИЗВЕДЕНИЕ
Unbounded channel превращает overload в рост памяти и устаревшую работу. Конечная очередь задаёт максимум ожидания; `try_send` немедленно отклоняет избыток, а blocking send применяет backpressure.
Receiver-iterator завершается только после drop всех sender и drain принятой очереди. Join при живом sender clone может ждать бесконечно: сначала закройте admission, затем join.
`JoinHandle::join` возвращает panic payload. Сервис может преобразовать его в типизированную ошибку, не утверждая, что уже выполненные внешние эффекты откатились.
КОНТРОЛЬНАЯ ТОЧКА
Выберите все подходящие варианты. Ответ засчитывается только при точном совпадении набора.
02 / ОТЛАДКА
Исправьте `BoundedWorker` без изменения API: нулевая capacity отклоняется до spawn, `try_submit` не блокирует и сохраняет job в Full/Closed, worker обрабатывает принятые jobs один раз по порядку, shutdown закрывает sender, делает drain и переводит panic в `WorkerPanicked`.
Runner ждёт отправки кода.