### What it does Check for empty spin loops ### Why is this bad? The loop body should have something like `thread::park()` or at least `std::hint::spin_loop()` to avoid needlessly burning cycles and conserve energy. Perhaps even better use an actual lock, if possible. ### Known problems This lint doesn't currently trigger on `while let` or `loop { match .. { .. } }` loops, which would be considered idiomatic in combination with e.g. `AtomicBool::compare_exchange_weak`. ### Example ``` use core::sync::atomic::{AtomicBool, Ordering}; let b = AtomicBool::new(true); // give a ref to `b` to another thread,wait for it to become false while b.load(Ordering::Acquire) {}; ``` Use instead: ``` while b.load(Ordering::Acquire) { std::hint::spin_loop() } ```