Что означает код возврата ядра macOS 0x10004011 (MACH_RCV_IN_PROGRESS_TIMED)?

 
Предыдущий Следующий
MACH_RCV_INVALID_TRAILER MACH_RCV_INVALID_REPLY

MACH_RCV_IN_PROGRESS_TIMED

Состояние ожидания с таймером, а не результат тайм-аута

MACH_RCV_IN_PROGRESS_TIMED в текущих заголовках XNU помечен как предназначенный только для внутреннего использования. Он отражает, что принимающий поток ожидает с активным поведением тайм-аута. Публичный результат после истечения интервала — MACH_RCV_TIMED_OUT; если сообщение поступит раньше, операция может завершиться успешно.

Смешение этих двух значений приводит к преждевременным повторам и дублированию принимающих рабочих потоков. Внутреннее состояние может появляться в отладке ядра, телеметрии ожиданий или закрытом коде, но не является стабильным результатом API, который приложениям следует сериализовать или сравнивать между версиями ОС.

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

  • Сохраните запрошенный тайм-аут, параметры приёма, время начала и итоговое возвращённое значение.
  • При измерении прошедшего времени учитывайте документированное прерывание и автоматический повтор.
  • Проверьте наличие производителей у порта или набора портов и изменение членства во время ожидания потока.
  • Используйте MACH_RCV_TIMED_OUT для обычной обработки тайм-аута; этот символ оставьте для интерпретации внутренней диагностики.

Ссылки


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