about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/std/src/sync/mpmc/utils.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/library/std/src/sync/mpmc/utils.rs b/library/std/src/sync/mpmc/utils.rs
index 3f0cb848cc5..85cf5dd2441 100644
--- a/library/std/src/sync/mpmc/utils.rs
+++ b/library/std/src/sync/mpmc/utils.rs
@@ -110,7 +110,8 @@ impl Backoff {
     /// progress.
     #[inline]
     pub fn spin(&self) {
-        for _ in 0..1 << self.step.get().min(SPIN_LIMIT) {
+        let step = self.step.get().min(SPIN_LIMIT);
+        for _ in 0..step.pow(2)  {
             crate::hint::spin_loop();
         }
 
@@ -123,7 +124,7 @@ impl Backoff {
     #[inline]
     pub fn snooze(&self) {
         if self.step.get() <= SPIN_LIMIT {
-            for _ in 0..1 << self.step.get() {
+            for _ in 0..self.step.get().pow(2) {
                 crate::hint::spin_loop()
             }
         } else {