Что означает код errno 105 (EOWNERDEAD)?

 
Также может означать:
КонстантаТипОС
ERROR_SEM_OWNER_DIEDОшибка WindowsWindows
ENOBUFSerrnoLinux
ECANCELEDerrnoWindows
IO1_INITIALIZATION_FAILEDКод BSODWindows
Предыдущий Следующий
ENOBUFS ECANCELED

EOWNERDEAD

Вызывающая сторона может владеть блокировкой, но состояние ещё нельзя считать надёжным

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

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

Что должно обеспечить восстановление

  • Какие изменения выполнялись при остановке предыдущего владельца и можно ли повторно воспроизвести журнал в памяти или на диске.
  • Что до продолжения работы других потоков восстановлены все инварианты общей структуры, а не только слово блокировки.
  • Что пути аварийного завершения и отмены оставляют достаточно данных, чтобы отличить сбой владельца от обычного освобождения блокировки.

Ссылки


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