Remove ctrlc dependency

Former-commit-id: b78552cbbdbdce140861406659678af2da4719b0
This commit is contained in:
Michel Heily 2020-04-13 18:27:16 +03:00
parent ab37609fcb
commit db04bdf341
3 changed files with 1 additions and 19 deletions

View file

@ -19,7 +19,6 @@ time = "0.2.6"
bitfield = "0.13.1"
bitflags = "1.2.1"
zip = {version = "0.5.4", default-features = false, features = ["deflate", "time"]}
ctrlc = "3.1.3"
bit-set = "0.5.1"
debug_stub_derive = "0.3.0"
bytesize = "1.0.0"

View file

@ -76,11 +76,7 @@ impl Debugger {
}
GpuInfo => println!("GPU: {:#?}", self.gba.sysbus.io.gpu),
Step(count) => {
self.ctrlc_flag.store(true, Ordering::SeqCst);
for _ in 0..count {
if !self.ctrlc_flag.load(Ordering::SeqCst) {
break;
}
self.gba.cpu.step(&mut self.gba.sysbus);
while self.gba.cpu.last_executed.is_none() {
self.gba.cpu.step(&mut self.gba.sysbus);
@ -107,8 +103,7 @@ impl Debugger {
println!("{}\n", self.gba.cpu);
}
Continue => {
self.ctrlc_flag.store(true, Ordering::SeqCst);
while self.ctrlc_flag.load(Ordering::SeqCst) {
loop {
self.gba.key_poll();
match self.gba.check_breakpoint() {
Some(addr) => {

View file

@ -1,9 +1,6 @@
use std::fs::File;
use std::io::{prelude::*, BufReader};
use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::Arc;
use ctrlc;
use rustyline::error::ReadlineError;
use rustyline::Editor;
@ -41,23 +38,14 @@ type DebuggerResult<T> = Result<T, DebuggerError>;
pub struct Debugger {
pub gba: GameBoyAdvance,
running: bool,
pub ctrlc_flag: Arc<AtomicBool>,
pub previous_command: Option<Command>,
}
impl Debugger {
pub fn new(gba: GameBoyAdvance) -> Debugger {
let ctrlc_flag = Arc::new(AtomicBool::new(true));
let r = ctrlc_flag.clone();
ctrlc::set_handler(move || {
println!("Stopping, Ctrl-C detected!");
r.store(false, Ordering::SeqCst);
})
.expect("Error setting Ctrl-C handler");
Debugger {
gba: gba,
running: false,
ctrlc_flag: ctrlc_flag,
previous_command: None,
}
}