mirror of
https://github.com/tokio-rs/tokio.git
synced 2025-09-25 12:00:35 +00:00
42 lines
764 B
Rust
42 lines
764 B
Rust
#![deny(warnings, rust_2018_idioms)]
|
|
#![feature(async_await)]
|
|
|
|
#[macro_use]
|
|
extern crate loom;
|
|
|
|
macro_rules! if_fuzz {
|
|
($($t:tt)*) => {
|
|
$($t)*
|
|
}
|
|
}
|
|
|
|
#[path = "../src/mpsc/mod.rs"]
|
|
#[allow(warnings)]
|
|
mod mpsc;
|
|
|
|
#[path = "../src/semaphore.rs"]
|
|
#[allow(warnings)]
|
|
mod semaphore;
|
|
|
|
use futures_util::future::poll_fn;
|
|
use loom::future::block_on;
|
|
use loom::thread;
|
|
|
|
#[test]
|
|
fn closing_tx() {
|
|
loom::model(|| {
|
|
let (mut tx, mut rx) = mpsc::channel(16);
|
|
|
|
thread::spawn(move || {
|
|
tx.try_send(()).unwrap();
|
|
drop(tx);
|
|
});
|
|
|
|
let v = block_on(poll_fn(|cx| rx.poll_recv(cx)));
|
|
assert!(v.is_some());
|
|
|
|
let v = block_on(poll_fn(|cx| rx.poll_recv(cx)));
|
|
assert!(v.is_none());
|
|
});
|
|
}
|