Re[10]: Можно ли избавиться от async|await?
От: novitk США  
Дата: 14.12.25 21:32
Оценка:
Здравствуйте, mrTwister, Вы писали:

T>Проблема в том, что через таски в C# убить можно случайно и незаметно в процессе порезания помидора. Например, можно сделать невинное свиду исправление, которое в какую-то синхронную функцию добавляет синхронный блокирующий вызов. Казалось бы, что такого: в синхронную функцию добавили синхронный выызов, что такого? Но потом оказывается, что это был первый блокирующий вызов в этой цепочке синхронных функций, которая инициируется из асинхронного контекста. И вуаля, асинхронный контекст заблокирован. И проверить это исправление на ревью или линтером очень сложно, потому что надо анализировать весь стек вызовов, а у нас все обмазано интерфейсами, абстрактными фабриками и поздним связыванием, и какой получится стек вызовов станет известно только в рантайме

Согласен, бывает сплошь и рядом. Но ты так говоришь будто в GoLang это как-то решается. Оно решается?

T>Главная разница в том, что нет двух видов "цветов" функций. Нет никаких синхронных и асинхронных контекстов, которые надо постоянно учитывать.

Как же его нет, если ты или return пишешь или в каналы шлешь?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.