Skip to content

Commit b354887

Browse files
committed
Add a test for Receiver::try_iter
1 parent 8aeb930 commit b354887

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/libstd/sync/mpsc/mod.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1839,6 +1839,34 @@ mod tests {
18391839
assert_eq!(count_rx.recv().unwrap(), 4);
18401840
}
18411841

1842+
#[test]
1843+
fn test_recv_try_iter() {
1844+
let (request_tx, request_rx) = channel();
1845+
let (response_tx, response_rx) = channel();
1846+
1847+
// Request `x`s until we have `6`.
1848+
let t = thread::spawn(move|| {
1849+
let mut count = 0;
1850+
loop {
1851+
for x in response_rx.try_iter() {
1852+
count += x;
1853+
if count == 6 {
1854+
drop(response_rx);
1855+
drop(request_tx);
1856+
return count;
1857+
}
1858+
}
1859+
request_tx.send(()).unwrap();
1860+
}
1861+
});
1862+
1863+
for _ in request_rx.iter() {
1864+
response_tx.send(2).unwrap();
1865+
}
1866+
1867+
assert_eq!(t.join().unwrap(), 6);
1868+
}
1869+
18421870
#[test]
18431871
fn test_recv_into_iter_owned() {
18441872
let mut iter = {

0 commit comments

Comments
 (0)