У каналов появилась проверка, жив ли ещё собеседник

19.03.2026

У отправителя и получателя каналов появилась проверка, жив ли ещё собеседник. Для канала с общей памятью она сразу стабильна, для обычного — пока за флагом.

Какая была запись

Понять, что получатель отброшен, можно было только по ошибке при отправке — то есть узнать постфактум, попытавшись отправить. Для цикла обработки задач это означает лишнюю попытку отправки на каждом проходе.

Обратная ситуация: отправитель отброшен, а получатель этого не знает и продолжает ждать. Это обнаруживается только если у задачи есть собственное время ожидания.

Что даёт проверка

Возможность спросить до действия. Цикл входящих за обработанной задачей может завершаться сразу, как только собеседник исчез, а не после того, как очередь опустеет.

Это особенно важно для получателей: они обычно ждут бесконечно и полагаются на внешний сигнал отмены. Проверка позволяет отличить «собеседника больше нет» от «просто пока тихо».

Оригинал

Add is_disconnected() functions to the Sender and Receiver of both mpmc an mpsc channels.

Упоминаний: 1 · Просмотров: 2