~starkingdoms/starkingdoms

ref: dda1b9e50e823af10d1d19ce27bf8a5296c84b9e starkingdoms/server/src/timer.rs -rw-r--r-- 620 bytes
dda1b9e5 — core hell is over? 2 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use std::error::Error;
use std::time::Duration;
use log::{error, trace};
use tokio::sync::mpsc::Receiver;
use tokio::time::sleep;
use crate::handler::{ClientHandlerMessage, ClientManager};

pub async fn timer_main(mgr: ClientManager) {
    loop {
        sleep(Duration::from_millis(5)).await;

        for (addr, client_thread) in mgr.handlers.read().await.iter() {
            match client_thread.tx.send(ClientHandlerMessage::Tick).await {
                Ok(_) => (),
                Err(e) => {
                    error!("unable to update a client thread: {}", e);
                }
            }
        }
    }
}