Skip to content

Commit 8c17a3e

Browse files
committed
remove extra spinning from mpsc::Receiver::recv
1 parent cb394c0 commit 8c17a3e

File tree

2 files changed

+6
-26
lines changed

2 files changed

+6
-26
lines changed

library/std/src/sync/mpmc/array.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -379,19 +379,9 @@ impl<T> Channel<T> {
379379
pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
380380
let token = &mut Token::default();
381381
loop {
382-
// Try receiving a message several times.
383-
let backoff = Backoff::new();
384-
loop {
385-
if self.start_recv(token) {
386-
let res = unsafe { self.read(token) };
387-
return res.map_err(|_| RecvTimeoutError::Disconnected);
388-
}
389-
390-
if backoff.is_completed() {
391-
break;
392-
} else {
393-
backoff.snooze();
394-
}
382+
if self.start_recv(token) {
383+
let res = unsafe { self.read(token) };
384+
return res.map_err(|_| RecvTimeoutError::Disconnected);
395385
}
396386

397387
if let Some(d) = deadline {

library/std/src/sync/mpmc/list.rs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -418,19 +418,9 @@ impl<T> Channel<T> {
418418
pub(crate) fn recv(&self, deadline: Option<Instant>) -> Result<T, RecvTimeoutError> {
419419
let token = &mut Token::default();
420420
loop {
421-
// Try receiving a message several times.
422-
let backoff = Backoff::new();
423-
loop {
424-
if self.start_recv(token) {
425-
unsafe {
426-
return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
427-
}
428-
}
429-
430-
if backoff.is_completed() {
431-
break;
432-
} else {
433-
backoff.snooze();
421+
if self.start_recv(token) {
422+
unsafe {
423+
return self.read(token).map_err(|_| RecvTimeoutError::Disconnected);
434424
}
435425
}
436426

0 commit comments

Comments
 (0)