Что означает код возврата ядра macOS 30 (KERN_ALREADY_WAITING)?

 
Также может означать:
КонстантаТипОС
ERROR_READ_FAULTОшибка WindowsWindows
ippStsWrongIntersectQuadСтатус Intel IPPЛюбая
EROFSerrnoЛюбая
KMODE_EXCEPTION_NOT_HANDLEDКод BSODWindows
Предыдущий Следующий
KERN_INVALID_OBJECT KERN_DEFAULT_SET

KERN_ALREADY_WAITING

Дублированный переход в состояние ожидания

KERN_ALREADY_WAITING указывает на нарушение инварианта ожидания: поток попытался ожидать событие, для которого уже было зарегистрировано ожидание. Это не то же самое, что конкуренция за блокировку или медленный семафор; конечный автомат попытался дважды войти в состояние ожидания.

Наиболее ценны сведения о первой регистрации ожидания. Более поздний вызов часто обнаруживает пропущенное пробуждение, путь очистки, путь отмены или неверно повторно использованную связь поток/событие.

Что проверить

  • Проследите идентификатор события, идентичность потока и стеки вызовов обеих попыток ожидания.
  • Проверьте каждый путь, который удаляет, пробуждает, отменяет или повторно использует регистрацию ожидания.
  • Проверьте, может ли обратный вызов повторно войти в ту же логику ожидания до завершения первого ожидания.
  • Проверьте, не пропустил ли путь ошибки переход, после которого поток снова получает право ожидать.

Ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.