mirror of https://github.com/smol-rs/polling
39 lines
760 B
Rust
39 lines
760 B
Rust
use std::io;
|
|
use std::thread;
|
|
use std::time::Duration;
|
|
|
|
use easy_parallel::Parallel;
|
|
use polling::Events;
|
|
use polling::Poller;
|
|
|
|
#[test]
|
|
fn simple() -> io::Result<()> {
|
|
let poller = Poller::new()?;
|
|
let mut events = Events::new();
|
|
|
|
for _ in 0..10 {
|
|
poller.notify()?;
|
|
poller.wait(&mut events, None)?;
|
|
assert!(events.is_empty());
|
|
}
|
|
|
|
Ok(())
|
|
}
|
|
|
|
#[test]
|
|
fn concurrent() -> io::Result<()> {
|
|
let poller = Poller::new()?;
|
|
let mut events = Events::new();
|
|
|
|
for _ in 0..2 {
|
|
Parallel::new()
|
|
.add(|| {
|
|
thread::sleep(Duration::from_secs(0));
|
|
poller.notify().unwrap();
|
|
})
|
|
.finish(|| poller.wait(&mut events, None).unwrap());
|
|
}
|
|
|
|
Ok(())
|
|
}
|