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