From b7ad89359bd17395cbccd1025d97a8b42c92836b Mon Sep 17 00:00:00 2001 From: primardj Date: Mon, 15 Apr 2024 23:19:02 +0100 Subject: [PATCH] small optimisation --- .../sv-rustit/src/executor/sent_signal.rs | 29 +++---------------- .../src/executor/sent_signal/misc.rs | 6 ++-- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/01_phase_rust_src/sv-rustit/src/executor/sent_signal.rs b/01_phase_rust_src/sv-rustit/src/executor/sent_signal.rs index 0c6b121..5f721b5 100644 --- a/01_phase_rust_src/sv-rustit/src/executor/sent_signal.rs +++ b/01_phase_rust_src/sv-rustit/src/executor/sent_signal.rs @@ -3,15 +3,9 @@ mod misc; use crate::status_obj; -use std::thread::sleep; -use std::time::Duration; - pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_obj::StatusObj) -> i32 { // Return 0 in case everything worked fine, return 1 if timeout or error. - - let mut time_wait = 0; - // execute command. if command == "s" { // case command is status return misc::print_status(sv); @@ -21,7 +15,7 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_ // case where command is up if sv.sent_signal(b"u") { if verbose == 1 { - return misc::run_verbose(svwait_var, sv); + return misc::run_verbose(true, svwait_var, sv); } else { return 0; } @@ -34,23 +28,7 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_ // case where command is up if sv.sent_signal(b"d") { if verbose == 1 { - loop { - let status = sv.update_status(); - if status == 1 { - return 1; - } - if sv.is_up() == false { - println!("{}", sv.get_status_string()); - return 0 - } - if time_wait >= svwait_var { - println!("timeout: {}", sv.get_status_string()); - return 1 - } - - time_wait += 1; - sleep(Duration::from_secs(1)); - } + return misc::run_verbose(false, svwait_var, sv); } else { return 0; } @@ -63,7 +41,7 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_ // case where command is run once. if sv.sent_signal(b"o") { if verbose == 1 { - return misc::run_verbose(svwait_var, sv); + return misc::run_verbose(true, svwait_var, sv); } else { return 0; } @@ -72,6 +50,7 @@ pub fn sent_signal( svwait_var: i32, verbose: i8, command: &str, mut sv: status_ } } + println!("Error, command not implemented."); return 1; } diff --git a/01_phase_rust_src/sv-rustit/src/executor/sent_signal/misc.rs b/01_phase_rust_src/sv-rustit/src/executor/sent_signal/misc.rs index 2addb04..98c80ef 100644 --- a/01_phase_rust_src/sv-rustit/src/executor/sent_signal/misc.rs +++ b/01_phase_rust_src/sv-rustit/src/executor/sent_signal/misc.rs @@ -24,14 +24,16 @@ pub fn print_status(mut sv: status_obj::StatusObj) -> i32 { } -pub fn run_verbose(svwait_var: i32, mut sv: status_obj::StatusObj) -> i32 { +pub fn run_verbose(state: bool, svwait_var: i32, mut sv: status_obj::StatusObj) -> i32 { + // if the state is true, wait for the service to run. + // If the state is false, wait for the service to down. let mut time_wait = 0; loop { let status = sv.update_status(); if status == 1 { return 1; } - if sv.is_up() == true { + if sv.is_up() == state { println!("ok: {}", sv.get_status_string()); return 0 }