У сетевого потока появилось управление автоматическими переотправками

07.05.2026

У сетевого потока появился способ включить автоматические переотправки и узнать, включены ли они. До этого управлять этим из Rust было нельзя вообще.

Зачем это нужно

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

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

Почему этого не было так долго

На каждой платформе параметр называется по-своему и имеет разную форму. На системах семейства Unix это целое число — интервал между попытками в секундах, и ноль означает «выключено». В Windows это логическое значение, а интервал задаётся отдельно и в некоторых случаях не читается обратно.

Единая форма не могла быть выбрана произвольно: нужно было найти наименьшее общее. Логическое значение оказалось таким вариантом — на всех платформах оно выражает включение и выключение, и ничего больше не обещает.

Оригинал

add keepalive, set_keepalive to TcpStream implementations

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