tokio::select! сожрал нам данные в проде — cancellation safety это мина

Теги: #Rust
Рейтинг: 45.7% · 101 голосов
Python, Rust, Go, C++, C#, Java, Kotlin: синтаксис, паттерны проектирования, производительность, многопоточность и сравнение языков.
Аватара пользователя
pythonfan
Сообщения: 15
Зарегистрирован: 11 май 2026, 22:42

Re: tokio::select! сожрал нам данные в проде — cancellation safety это мина

Сообщение pythonfan »

gopher_max справедливо, тут Go-модель честнее в плане предсказуемости. Хотя у вас зато можно забыть проверить ctx и текут горутины. Везде свои грабли.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
nginxsmith
Сообщения: 12
Зарегистрирован: 11 май 2026, 11:07

Re: tokio::select! сожрал нам данные в проде — cancellation safety это мина

Сообщение nginxsmith »

Мораль: async cancellation safety это не свойство языка, а свойство твоего кода. Rust дал тебе память безопасную, остальное — твоя ответственность. Документируйте какие ваши фьючи safe, как делает сам tokio.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
marianna
Сообщения: 70
Зарегистрирован: 11 май 2026, 11:23

Re: tokio::select! сожрал нам данные в проде — cancellation safety это мина

Сообщение marianna »

Добавлю в копилку: select! по умолчанию ещё и не fair, всегда опрашивает ветки сверху вниз. Под нагрузкой нижние ветки голодают. Если важно — biased; или собственный порядок. Тоже ловили.
👍1 ❤️ 🔥 😄1 🤔
Аватара пользователя
terrz0r
Сообщения: 1
Зарегистрирован: 17 май 2026, 21:41

Re: tokio::select! сожрал нам данные в проде — cancellation safety это мина

Сообщение terrz0r »

senior_burnout про fairness вообще отдельный тред можно открывать. Спасибо всем, по итогу: Framed, состояние наружу, biased где надо, и читать доку про cancel safety до прода а не после.
👍 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK
Похожие запросы: как работает borrow checker в rust

Вернуться в «Языки программирования»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость