X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fprinter.rs;h=4818d9af61ce4076dddc53de9a349e7cc3051c9f;hb=2ff004bd87f6aee72742f3e9249ec5b21321de0e;hp=a23d023cb2d2457ce895643c6a0f84471e16a163;hpb=405c10047bad68f7f2fabcf975ca0574444a7d47;p=dnsseed-rust diff --git a/src/printer.rs b/src/printer.rs index a23d023..4818d9a 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -1,9 +1,12 @@ +use std::sync::atomic::Ordering; use std::collections::LinkedList; use std::sync::{Arc, Mutex}; use std::io::Write; use crate::datastore::{Store, AddressState, U64Setting, RegexSetting}; +use crate::START_SHUTDOWN; + pub enum Stat { HeaderCount(u64), NewConnection, @@ -36,6 +39,9 @@ impl Printer { let mut out = stdout.lock(); let stats = thread_arc.lock().unwrap(); + if START_SHUTDOWN.load(Ordering::Relaxed) && stats.connection_count == 0 { + break; + } out.write_all(b"\x1b[2J\x1b[;H\n").expect("stdout broken?"); for line in stats.lines.iter() {