error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:9:37
   |
LL |     while b.load(Ordering::Acquire) {}
   |                                     ^^ help: try: `{ std::hint::spin_loop() }`
   |
   = note: `-D clippy::missing-spin-loop` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::missing_spin_loop)]`

error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:12:37
   |
LL |     while !b.load(Ordering::SeqCst) {}
   |                                     ^^ help: try: `{ std::hint::spin_loop() }`

error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:15:46
   |
LL |     while b.load(Ordering::Acquire) == false {}
   |                                              ^^ help: try: `{ std::hint::spin_loop() }`

error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:18:49
   |
LL |     while { true == b.load(Ordering::Acquire) } {}
   |                                                 ^^ help: try: `{ std::hint::spin_loop() }`

error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:21:93
   |
LL |     while b.compare_exchange(true, false, Ordering::Acquire, Ordering::Relaxed) != Ok(true) {}
   |                                                                                             ^^ help: try: `{ std::hint::spin_loop() }`

error: busy-waiting loop should at least have a spin loop hint
  --> tests/ui/missing_spin_loop.rs:24:94
   |
LL |     while Ok(false) != b.compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed) {}
   |                                                                                              ^^ help: try: `{ std::hint::spin_loop() }`

error: aborting due to 6 previous errors

