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

 
Предыдущий Следующий
MACH_SEND_MSG_FILTERED MACH_RCV_INVALID_NAME

MACH_RCV_IN_PROGRESS

Ожидание не является завершённым результатом получения

MACH_RCV_IN_PROGRESS — внутреннее состояние XNU для потока, ожидающего в пути получения. Публичные вызывающие стороны обычно наблюдают окончательный результат: сообщение, MACH_RCV_TIMED_OUT, MACH_RCV_INTERRUPTED, потерю права получения или другой документированный результат. Этот внутренний маркер не следует использовать как код уровня приложения «повторить попытку».

Его присутствие в трассировке или отладчике всё же может быть полезно. Поток может законно спать, поскольку выбранный порт или набор портов не содержит сообщения в очереди. Постоянное ожидание, напротив, указывает на остановку производителя, выбор неправильного имени получения, изменение членства в очереди или сбой пробуждения или отмены принимающего потока при завершении.

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

  • Определите порт или набор портов получения и перечислите ожидаемых производителей.
  • Проверьте, был ли указан тайм-аут, и зафиксируйте итоговый публичный код возврата.
  • Проверьте членство в наборе портов и владение правом получения с учётом одновременных изменений.
  • Для завершения службы убедитесь, что архитектура содержит документированный путь пробуждения, тайм-аута или уничтожения порта, а не опрашивает это внутреннее значение.

Ссылки


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