diff options
| author | Andrew <amiller4421@gmail.com> | 2016-07-08 19:05:10 -0700 |
|---|---|---|
| committer | Andrew <amiller4421@gmail.com> | 2016-07-08 19:09:51 -0700 |
| commit | 2af340c0ec72f0033bda65d920ac04ae9e1c0cae (patch) | |
| tree | 590ec7642be482f5c036663b0a28b843be0c1d19 /src/libstd/sync/mpsc/mod.rs | |
| parent | 5e18b4bad8450622aef8e077d3470f5626403588 (diff) | |
| download | rust-2af340c0ec72f0033bda65d920ac04ae9e1c0cae.tar.gz rust-2af340c0ec72f0033bda65d920ac04ae9e1c0cae.zip | |
Check for data in Receiver::try_recv before reporting disconnect
Diffstat (limited to 'src/libstd/sync/mpsc/mod.rs')
| -rw-r--r-- | src/libstd/sync/mpsc/mod.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/libstd/sync/mpsc/mod.rs b/src/libstd/sync/mpsc/mod.rs index 34bc210b3c8..d96fd6228e6 100644 --- a/src/libstd/sync/mpsc/mod.rs +++ b/src/libstd/sync/mpsc/mod.rs @@ -2181,6 +2181,15 @@ mod sync_tests { } #[test] + fn oneshot_single_thread_try_recv_closed_with_data() { + let (tx, rx) = sync_channel::<i32>(1); + tx.send(10).unwrap(); + drop(tx); + assert_eq!(rx.try_recv(), Ok(10)); + assert_eq!(rx.try_recv(), Err(TryRecvError::Disconnected)); + } + + #[test] fn oneshot_single_thread_peek_data() { let (tx, rx) = sync_channel::<i32>(1); assert_eq!(rx.try_recv(), Err(TryRecvError::Empty)); |
