diff options
| author | Ibraheem Ahmed <ibraheem@ibraheem.ca> | 2022-10-17 19:17:10 -0400 |
|---|---|---|
| committer | Ibraheem Ahmed <ibraheem@ibraheem.ca> | 2022-11-09 23:20:02 -0500 |
| commit | 8c17a3e7cb0717fbc849f2a8250e8f5b88a1a3c7 (patch) | |
| tree | 3e48af96260ed735a310bea2f9b6de462db2093d /library/std/src/sync/mpmc/array.rs | |
| parent | cb394c026a1645d5511c987006ef190755289451 (diff) | |
| download | rust-8c17a3e7cb0717fbc849f2a8250e8f5b88a1a3c7.tar.gz rust-8c17a3e7cb0717fbc849f2a8250e8f5b88a1a3c7.zip | |
remove extra spinning from `mpsc::Receiver::recv`
Diffstat (limited to 'library/std/src/sync/mpmc/array.rs')
| -rw-r--r-- | library/std/src/sync/mpmc/array.rs | 16 |
1 files changed, 3 insertions, 13 deletions
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 @@ impl<T> Channel<T> { pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> { 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 { |
