gameServer2/src/main.rs
changeset 13414 28b314ad566d
parent 13119 1e39b8749072
child 13421 d1368c776a4f
equal deleted inserted replaced
13412:236cc4cf2448 13414:28b314ad566d
    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 }