summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authortom barrett <spalf0@gmail.com>2019-03-29 08:52:08 -0500
committertom barrett <spalf0@gmail.com>2019-03-29 08:52:08 -0500
commit4576a80954d57bf2cb8ab3d99b73b75b84b2ce02 (patch)
tree480fee5b80cad6f778cdde29362fbe52f820d43e /src/bin
parent50d92d677d6d53a83df15188c1b820b2b163e720 (diff)
more consistent loop durations
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/server.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/bin/server.rs b/src/bin/server.rs
index e8fa735..881cc4d 100644
--- a/src/bin/server.rs
+++ b/src/bin/server.rs
@@ -4,7 +4,7 @@ use std::collections::HashMap;
use std::io::Write;
use std::net::TcpListener;
use std::thread::sleep;
-use std::time::Duration;
+use std::time::{Duration, Instant};
use space::constants;
use space::mass::Mass;
@@ -42,6 +42,8 @@ fn main() {
connections.push(new_connection);
}
_ => {
+ let timer = Instant::now();
+
for connection in &mut connections {
if connection.open {
let mut ship = masses.remove(&connection.name).unwrap();
@@ -62,7 +64,11 @@ fn main() {
masses.insert(key.to_string(), mass);
}
- sleep(Duration::from_millis(constants::SLEEP_DURATION));
+ if timer.elapsed().as_millis() < constants::LOOP_DURATION_MS.into() {
+ sleep(Duration::from_millis(
+ constants::LOOP_DURATION_MS - timer.elapsed().as_millis() as u64,
+ ));
+ }
}
}
}