| Предыдущий | Следующий |
| MACH_SEND_MSG_FILTERED | MACH_RCV_INVALID_NAME |
MACH_RCV_IN_PROGRESS
Ожидание не является завершённым результатом получения
MACH_RCV_IN_PROGRESS — внутреннее состояние XNU для потока, ожидающего в пути получения. Публичные вызывающие стороны обычно наблюдают окончательный результат: сообщение, MACH_RCV_TIMED_OUT, MACH_RCV_INTERRUPTED, потерю права получения или другой документированный результат. Этот внутренний маркер не следует использовать как код уровня приложения «повторить попытку».
Его присутствие в трассировке или отладчике всё же может быть полезно. Поток может законно спать, поскольку выбранный порт или набор портов не содержит сообщения в очереди. Постоянное ожидание, напротив, указывает на остановку производителя, выбор неправильного имени получения, изменение членства в очереди или сбой пробуждения или отмены принимающего потока при завершении.
Что проверить
- Определите порт или набор портов получения и перечислите ожидаемых производителей.
- Проверьте, был ли указан тайм-аут, и зафиксируйте итоговый публичный код возврата.
- Проверьте членство в наборе портов и владение правом получения с учётом одновременных изменений.
- Для завершения службы убедитесь, что архитектура содержит документированный путь пробуждения, тайм-аута или уничтожения порта, а не опрашивает это внутреннее значение.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
