| Предыдущий | Следующий |
| KERN_NODE_DOWN | KERN_OPERATION_TIMED_OUT |
KERN_NOT_WAITING
Сигнал не обнаружил активного ожидания
KERN_NOT_WAITING означает, что при сигнализации целевой поток фактически не ожидал. Это не тайм-аут и не указание на недопустимое ожидаемое событие; статус фиксирует несоответствие между попыткой сигнала и текущим состоянием ожидания потока.
В событийном коде это часто указывает на гонку между пробуждением, отменой, тайм-аутом или повторным использованием состояния. Для диагностики нужен порядок этих переходов, а не увеличение тайм-аута или слепой повтор сигнала.
Что проверить
- Запишите событие, целевой поток и точное время попытки сигнала.
- Сохраните предыдущие пробуждения, тайм-ауты, отмены и события уничтожения для того же ожидания.
- Проверьте, что каждый сигнал связан с документированным условием ожидания, а не с устаревшей ссылкой на поток.
- Сравните с
KERN_ALREADY_WAITING, который обозначает противоположный недопустимый переход: повторный вход в то же ожидание.
Ссылки
- Apple XNU: kern_return.h
- Apple Kernel Programming Guide: условные переменные и поведение ожидания
- Руководство Apple по программированию ядра: очереди ожидания планировщика
Нужно найти другой код? Найти другой код состояния или ошибки.