Что означает код errno 45 (EDEADLK)?

 
Также может означать:
КонстантаТипОС
KERN_RPC_CONTINUE_ORPHANКод возврата ядра macOSmacOS
ippStsLLADisabledСтатус Intel IPPЛюбая
EL2NSYNCerrnoLinux
ENOTSUPerrnomacOS
SCSI_DISK_DRIVER_INTERNALКод BSODWindows
Предыдущий Следующий
ENOTSUP EL3HLT

EDEADLK

Обнаружение взаимоблокировок в блокировках и синхронизации

В Solaris EDEADLK имеет значение errno 45. Основное сообщение: Состояние взаимоблокировки., однако полезный диагностический контекст уже краткого сообщения: Solaris обнаружила взаимоблокировку или предотвратила её при блокировке либо синхронизации.

Для EDEADLK сначала используйте таблицу errno Solaris и лишь затем сравнивайте с POSIX для переносимого поведения. Некоторые значения Solaris с именем EDEADLK имеют те же имена, что и в других UNIX-системах, но другие числовые коды или более узкие исторические значения.

Что проверить для EDEADLK

  • Зафиксируйте тип блокировки: блокировка записи fcntl, мьютекс, семафор, условная переменная или блокировка чтения/записи.
  • Проверьте порядок захвата и владельцев блокировок, а не увеличивайте значения тайм-аутов.
  • Сравните с EDEADLOCK — более старым вариантом имени, использовавшимся в Solaris для сообщений о взаимоблокировке файловых блокировок.

Ссылки для EDEADLK


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