| Предыдущий | Следующий |
| KERN_INVALID_SECURITY | KERN_TERMINATED |
KERN_NOT_DEPRESSED
Нет активного понижения планирования, которое можно отменить
KERN_NOT_DEPRESSED связан с историческим механизмом понижения планирования Mach. thread_depress_abort отменяет понижение, вызванное thread_switch; этот результат означает, что в момент попытки отмены у целевого потока не было такого активного понижения.
Это состояние может быть обычным результатом выбора времени: понижение уже могло истечь, поток мог выполниться либо другой путь мог его снять. Оно не доказывает, что целевой поток заблокирован, завершён или постоянно имеет низкий приоритет.
Что проверить
- Регистрируйте исходный параметр
thread_switchи запрошенную длительность вместе с последующей попыткой отмены. - Зафиксируйте жизненный цикл целевого потока и состояние планировщика в обеих точках.
- Используйте идемпотентную политику очистки, если вызывающей стороне требуется лишь гарантировать отсутствие понижения.
- Не интерпретируйте этот код как ошибку приоритета пользовательского потока.
Ссылки
- Apple XNU: kern_return.h
- Справочник интерфейсов ядра Mach: thread_depress_abort
- Руководство Apple по программированию ядра: планирование Mach и интерфейсы потоков
Нужно найти другой код? Найти другой код состояния или ошибки.