Обновить

Как Go зависает на Windows в CancelIoEx: история одного бага

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5K
Всего голосов 14: ↑14 и ↓0+19
Комментарии5

Комментарии 5

Расскажите, как удалось привлечь Windows Kernel team.

Microsoft Premier Support

Под капотом весь IO в Windows асинхронный, говорили они. Синхронные операции просто сами ждут вместо вас, говорили они.

Интересно.
А как последовать совету не смешивать синхронный и асинхронный вызов, если оно само может превращаться из одного в другое?

Посмотрим, чем завершится эта история. На мой взгляд, это тянет на баг в I/O Manager: если поток заблокирован на синхронной операции ввода-вывода, то любой ранее инициированный им асинхронный I/O фактически лишается шансов на завершение или отмену.

Потому и надо кодить на С, где есть полный контроль над Winapi

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации