1 use {sleep_ms};
2 use mio::*;
3 use mio::net::{TcpListener, TcpStream};
4 use std::time::Duration;
5
6 const MS: u64 = 1_000;
7
8 #[test]
test_reregister_different_without_poll()9 pub fn test_reregister_different_without_poll() {
10 let mut events = Events::with_capacity(1024);
11 let poll = Poll::new().unwrap();
12
13 // Create the listener
14 let l = TcpListener::bind(&"127.0.0.1:0".parse().unwrap()).unwrap();
15
16 // Register the listener with `Poll`
17 poll.register(&l, Token(0), Ready::readable(), PollOpt::edge() | PollOpt::oneshot()).unwrap();
18
19 let s1 = TcpStream::connect(&l.local_addr().unwrap()).unwrap();
20 poll.register(&s1, Token(2), Ready::readable(), PollOpt::edge()).unwrap();
21
22 sleep_ms(MS);
23
24 poll.reregister(&l, Token(0), Ready::writable(), PollOpt::edge() | PollOpt::oneshot()).unwrap();
25
26 poll.poll(&mut events, Some(Duration::from_millis(MS))).unwrap();
27 assert_eq!(events.len(), 0);
28 }
29