| Предыдущий | Следующий |
| 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для обычной обработки тайм-аута; этот символ оставьте для интерпретации внутренней диагностики.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
