Removes problematic empty critical section (lines 1993-1994) that
was intentionally waiting for mutex availability. Replaces with
atomic.Bool scan tracking to avoid linter warnings while maintaining
the same scan serialization behavior.
Old pattern:
mu.Lock()
// intentionally empty wait for mutex
mu.Unlock()
New pattern:
scanRunning atomic.Bool
if !scanRunning.CompareAndSwap(false, true) {
return ErrScanInProgress
}
defer scanRunning.Store(false)
This provides equivalent functionality with better performance
characteristics and clearer intent.