Что означает код возврата ядра macOS 40 (KERN_LOCK_OWNED)?

 
Также может означать:
КонстантаТипОС
ippStsWrongIntersectVOIСтатус Intel IPPЛюбая
ELOOPerrnoLinux
EMSGSIZEerrnomacOS
EL3RSTerrnoSolaris
ENOSYSerrnoWindows
CORRUPT_ACCESS_TOKENКод BSODWindows
Предыдущий Следующий
KERN_LOCK_UNSTABLE KERN_LOCK_OWNED_SELF

KERN_LOCK_OWNED

Конкуренция за допустимую блокировку

KERN_LOCK_OWNED означает, что в момент запроса блокировкой владеет другой поток. В отличие от KERN_LOCK_UNSTABLE, сообщённый владелец не исчез; в отличие от KERN_LOCK_OWNED_SELF, вызывающий поток не пытается выполнить конфликтующую операцию со своей блокировкой.

Возвращаемое значение является наблюдением конкуренции, а не доказательством взаимной блокировки. Его значимость зависит от ожидаемой длительности критической секции и от того, предоставляет ли API ожидание, try-lock или явное планирование.

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

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

Ссылки


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