equal
deleted
inserted
replaced
20 mod utils; |
20 mod utils; |
21 mod server; |
21 mod server; |
22 mod protocol; |
22 mod protocol; |
23 |
23 |
24 use server::network::NetworkLayer; |
24 use server::network::NetworkLayer; |
|
25 use std::time::Duration; |
25 |
26 |
26 fn main() { |
27 fn main() { |
27 env_logger::init().unwrap(); |
28 env_logger::init().unwrap(); |
28 |
29 |
29 info!("Hedgewars game server, protocol {}", utils::PROTOCOL_VERSION); |
30 info!("Hedgewars game server, protocol {}", utils::PROTOCOL_VERSION); |
36 hw_network.register_server(&poll).unwrap(); |
37 hw_network.register_server(&poll).unwrap(); |
37 |
38 |
38 let mut events = Events::with_capacity(1024); |
39 let mut events = Events::with_capacity(1024); |
39 |
40 |
40 loop { |
41 loop { |
41 poll.poll(&mut events, None).unwrap(); |
42 let timeout = if hw_network.has_pending_operations() { |
|
43 Some(Duration::from_millis(1)) |
|
44 } else { |
|
45 None |
|
46 }; |
|
47 poll.poll(&mut events, timeout).unwrap(); |
42 |
48 |
43 for event in events.iter() { |
49 for event in events.iter() { |
44 if event.readiness() & Ready::readable() == Ready::readable() { |
50 if event.readiness() & Ready::readable() == Ready::readable() { |
45 match event.token() { |
51 match event.token() { |
46 utils::SERVER => hw_network.accept_client(&poll).unwrap(), |
52 utils::SERVER => hw_network.accept_client(&poll).unwrap(), |
58 // utils::SERVER => unreachable!(), |
64 // utils::SERVER => unreachable!(), |
59 // Token(tok) => server.client_error(&poll, tok).unwrap(), |
65 // Token(tok) => server.client_error(&poll, tok).unwrap(), |
60 // } |
66 // } |
61 // } |
67 // } |
62 } |
68 } |
|
69 hw_network.on_idle(&poll).unwrap(); |
63 } |
70 } |
64 } |
71 } |