I didn&#x27;t go into OSSpinLock specifics because I didn&#x27;t want the distraction. The naive spinlock shown in the post certainly is always runnable. OSSpinLock&#x27;s behavior helps with priority inversions, but it doesn&#x27;t solve the issue with QOS. If there&#x27;s enough threads of a high QOS blocked on an OSSpinLock it can still livelock. Only truly unbounded backoff can solve that in all cases, but that can lead to high-QOS threads being delayed for a long time (according to the Apple engineer it could result in &quot;tens of seconds&quot; of delay, which is obviously not acceptable for a high-QOS thread).