| Предыдущий | Следующий |
| ENOTSUP | EL3HLT |
EDEADLK
Обнаружение взаимоблокировок в блокировках и синхронизации
В Solaris EDEADLK имеет значение errno 45. Основное сообщение: Состояние взаимоблокировки.
, однако полезный диагностический контекст уже краткого сообщения: Solaris обнаружила взаимоблокировку или предотвратила её при блокировке либо синхронизации.
Для блокировок файлов сохраните диапазоны, режимы read/write и владельцев конфликтующих блокировок; для mutex — порядок захвата объектов. Исправление требует разорвать цикл ожиданий, а не увеличивать число повторных попыток.
Что проверить
- Зафиксируйте тип блокировки: блокировка записи fcntl, мьютекс, семафор, условная переменная или блокировка чтения/записи.
- Проверьте порядок захвата и владельцев блокировок, а не увеличивайте значения тайм-аутов.
- Сравните с EDEADLOCK — более старым вариантом имени, использовавшимся в Solaris для сообщений о взаимоблокировке файловых блокировок.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
