| Предыдущий | Следующий |
| ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE | ERROR_TIMER_RESUME_IGNORED |
ERROR_NO_YIELD_PERFORMED
Что означает ERROR_NO_YIELD_PERFORMED
ERROR_NO_YIELD_PERFORMED — процессор был уступлен другим потокам, но не нашлось потока, готового к выполнению.
Что проверить
Зафиксируйте поток и вызов, на котором появился код, а также состояние потока до и после операции.
- Проверьте срок жизни контекста обратного вызова, порядок завершения потока и наличие ожидающих APC или уведомлений, если они участвуют в сценарии.
- При гонке или зависании снимите стеки участвующих потоков: обычный повтор часто только меняет расписание и скрывает причину.
Исходная формулировка
a yield request found no other runnable thread.
record CPU count, thread priority, affinity mask, and contention state; inspect whether the loop has a real blocking primitive available; use ETW scheduler traces when high CPU usage accompanies repeated yields
this result corresponds to Win32 error value documented as: A yield execution was performed and no thread was available to run.
Do not treat yielding as guaranteed progress. Replace busy loops with events, condition variables, waits, or bounded exponential backoff when another thread must produce work.
This result differs from a wait timeout: the caller did not block for an interval; it merely found no runnable peer to receive the processor.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
