aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAstatin <[email protected]>2024-09-14 15:31:39 +0900
committerAstatin <astatin@redacted>2024-09-14 15:31:39 +0900
commit249921a2094d172e94543446e2af11dcba5075e8 (patch)
treedb2762099ce88a7799c0e2b5983c32df9d33efaa
parent09104524ed468442bb4957d24e65395955b59ddd (diff)
Fix timing issues by not calling SystemTime::now at every instruction
-rw-r--r--src/main.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 3d18789..f0a7361 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -78,6 +78,7 @@ fn main() {
let mut was_previously_halted = false;
let mut last_ram_bank_enabled = false;
+ let mut now = SystemTime::now();
loop {
if was_previously_halted && !state.mem.halt {
@@ -85,7 +86,6 @@ fn main() {
halt_time = 0;
}
was_previously_halted = state.mem.halt;
- let now = SystemTime::now();
let c = if !state.mem.halt {
exec_opcode(&mut state).unwrap()
} else {
@@ -127,7 +127,8 @@ fn main() {
}
nanos_sleep =
- nanos_sleep - SystemTime::now().duration_since(now).unwrap().as_nanos() as i128;
+ nanos_sleep - SystemTime::now().duration_since(now).unwrap().as_nanos() as i128;
+ now = SystemTime::now();
if last_ram_bank_enabled && !state.mem.ram_bank_enabled {
println!("Saving to \"{}\"...", save_file);