Что означает код errno 104 (ENOTRECOVERABLE) в macOS?

 
Также может означать:
КонстантаТипОС
ERROR_INVALID_AT_INTERRUPT_TIMEОшибка WindowsWindows
ECONNRESETerrnoLinux
EBADMSGerrnoWindows
FILE_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
ECONNRESET EBADMSG

ENOTRECOVERABLE

Что означает результат

ENOTRECOVERABLE: ENOTRECOVERABLE является частью семантики восстановления устойчивого мьютекса. Оно означает, что предыдущий владелец завершился или оставил защищённое состояние, а восстановление не было завершено так, чтобы сделать состояние безопасным для дальнейшего использования. Мьютекс не просто занят: обычное получение блокировки больше невозможно.. Для robust mutex состояние признано невосстановимым: предыдущий владелец умер, а защищённые данные не были приведены в согласованное состояние до разблокировки. Это не просто «mutex занят».

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

  • Проверьте, был ли ранее получен EOWNERDEAD и выполнил ли новый владелец восстановление данных.
  • Убедитесь, что pthread_mutex_consistent вызван только после фактического восстановления invariant.
  • Найдите путь, который разблокировал robust mutex без завершённого recovery.

Диагностика и исправление

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

Технические ссылки


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