У сетевого потока появилось управление автоматическими переотправками
07.05.2026У сетевого потока появился способ включить автоматические переотправки и узнать, включены ли они. До этого управлять этим из Rust было нельзя вообще.
Зачем это нужно
По умолчанию переотправки выключены, и это разумно для большинства приложений: они устанавливают собственные таймауты и сами решают, что делать с потерянным соединением.
Но для приложений, где соединение рассчитано на долгую жизнь и потеря не должна его завершать — клиенты баз данных, подписчики событий, — поведение по умолчанию не подходит. Переотправки в таком случае ищутся как отдельная функция или не ищутся вовсе.
Почему этого не было так долго
На каждой платформе параметр называется по-своему и имеет разную форму. На системах семейства Unix это целое число — интервал между попытками в секундах, и ноль означает «выключено». В Windows это логическое значение, а интервал задаётся отдельно и в некоторых случаях не читается обратно.
Единая форма не могла быть выбрана произвольно: нужно было найти наименьшее общее. Логическое значение оказалось таким вариантом — на всех платформах оно выражает включение и выключение, и ничего больше не обещает.
Оригинал
add keepalive, set_keepalive to TcpStream implementations
Упоминаний: 1 · Просмотров: 2