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

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

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

Сообщение zhenya_omega95 »

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

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

Сообщение ksenia_data »

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

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

Сообщение alex7722 »

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

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

Сообщение demid_ssh »

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

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

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