| Предыдущий | Следующий |
| KERN_NAME_EXISTS | KERN_INVALID_NAME |
KERN_ABORTED
KERN_ABORTED означает, что операция Mach не завершилась, поскольку была прервана. В определении XNU отмечено, что код IPC может перехватить это состояние и отразить его как ошибку сообщения, поэтому исходный результат ядра не всегда является единственным симптомом, видимым на более высоком уровне API.
В отличие от некорректного аргумента этот результат говорит, что выполнявшаяся операция была прервана или отменена до штатного перехода. Поэтому следующий диагностический вопрос — не только «какой параметр неверен?», а «какое событие жизненного цикла произошло во время активного запроса?».
Что сопоставить
- Уничтожение порта, завершение задачи, отмену, тайм-аут или остановку рядом по времени с неудачным вызовом.
- Отправляла или принимала ли вызывающая сторона сообщение либо управляла правом порта в момент прерывания.
- Повторит ли новый вызов уже отменённую операцию или безопасен только после перестроения связи IPC.
- Ошибку сообщения более высокого уровня, которая оборачивает или заменяет исходный результат Mach.
IPC Mach построен на сообщениях, портах и правах. Полезный отчёт об ошибке должен сохранять тип операции и жизненный цикл объекта, поскольку KERN_ABORTED намеренно не определяет событие отмены.
Ссылки
- XNU: kern_return.h
- Руководство Apple по программированию ядра: порты и права Mach
- Справочник GNU Mach: интерфейс управления портами
Нужно найти другой код? Найти другой код состояния или ошибки.