| Предыдущий | Следующий |
| ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE | ERROR_TIMER_RESUME_IGNORED |
ERROR_NO_YIELD_PERFORMED
Что означает ERROR_NO_YIELD_PERFORMED
ERROR_NO_YIELD_PERFORMED означает, что попытка уступить processor time не привела к переключению на другой готовый поток. Caller не ожидал интервал времени и не получил обычный timeout — просто scheduler не нашёл runnable peer для этого yield.
Что проверить
- Зафиксируйте CPU count, affinity и priority текущего потока и тех потоков, от которых ожидается прогресс.
- Не используйте yield как механизм ожидания завершения другой операции или освобождения lock.
- Если требуется ожидание события, применяйте event/condition/wait либо bounded backoff с явным условием выхода.
- При высокой загрузке используйте scheduler ETW trace, чтобы подтвердить наличие/отсутствие runnable peers, а не делать вывод по одному status.
Как подтвердить исправление
Исправление подтверждается тем, что алгоритм прогресса опирается на явную синхронизацию, а не на предположение, что каждый yield обязательно переключит поток.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.