From: Ibraheem Ahmed Date: Mon, 17 Oct 2022 23:17:10 +0000 (-0400) Subject: remove extra spinning from `mpsc::Receiver::recv` X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=8c17a3e7cb0717fbc849f2a8250e8f5b88a1a3c7;p=rust.git remove extra spinning from `mpsc::Receiver::recv` --- diff --git a/library/std/src/sync/mpmc/array.rs b/library/std/src/sync/mpmc/array.rs index 74bc53d549d..dfa47702103 100644 --- a/library/std/src/sync/mpmc/array.rs +++ b/library/std/src/sync/mpmc/array.rs @@ -379,19 +379,9 @@ pub(crate) fn try_recv(&self) -> Result { pub(crate) fn recv(&self, deadline: Option) -> Result { let token = &mut Token::default(); loop { - // Try receiving a message several times. - let backoff = Backoff::new(); - loop { - if self.start_recv(token) { - let res = unsafe { self.read(token) }; - return res.map_err(|_| RecvTimeoutError::Disconnected); - } - - if backoff.is_completed() { - break; - } else { - backoff.snooze(); - } + if self.start_recv(token) { + let res = unsafe { self.read(token) }; + return res.map_err(|_| RecvTimeoutError::Disconnected); } if let Some(d) = deadline { diff --git a/library/std/src/sync/mpmc/list.rs b/library/std/src/sync/mpmc/list.rs index 5bc196995b1..4761125e483 100644 --- a/library/std/src/sync/mpmc/list.rs +++ b/library/std/src/sync/mpmc/list.rs @@ -418,19 +418,9 @@ pub(crate) fn try_recv(&self) -> Result { pub(crate) fn recv(&self, deadline: Option) -> Result { let token = &mut Token::default(); loop { - // Try receiving a message several times. - let backoff = Backoff::new(); - loop { - if self.start_recv(token) { - unsafe { - return self.read(token).map_err(|_| RecvTimeoutError::Disconnected); - } - } - - if backoff.is_completed() { - break; - } else { - backoff.snooze(); + if self.start_recv(token) { + unsafe { + return self.read(token).map_err(|_| RecvTimeoutError::Disconnected); } }