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

 
Предыдущий Следующий
MACH_RCV_IN_PROGRESS MACH_RCV_TIMED_OUT

MACH_RCV_INVALID_NAME

Проблема права приёма и членства

MACH_RCV_INVALID_NAME означает, что receive_name, переданное в mach_msg, не обозначает допустимую цель приёма в пространстве имён вызывающей задачи. Знания числового имени порта недостаточно для приёма: извлекать сообщения из очереди может только задача, владеющая правом приёма. Набор портов также отличается от отдельного порта, а правила членства влияют на имя, которое допустимо использовать для приёма.

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

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

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

Ссылки


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