Finite state machines in rust; bendns fork to add types.
| -rw-r--r-- | rust_fsm/examples/circuit_breaker.rs | 7 | ||||
| -rw-r--r-- | rust_fsm/examples/circuit_breaker_dsl.rs | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/rust_fsm/examples/circuit_breaker.rs b/rust_fsm/examples/circuit_breaker.rs index fa31883..b2814d3 100644 --- a/rust_fsm/examples/circuit_breaker.rs +++ b/rust_fsm/examples/circuit_breaker.rs @@ -3,6 +3,7 @@ /// https://martinfowler.com/bliki/CircuitBreaker.html use rust_fsm::*; use std::sync::{Arc, Mutex}; +use std::time::Duration; #[derive(Debug)] enum CircuitBreakerInput { @@ -76,7 +77,7 @@ fn main() { // Set up a timer let machine_wait = machine.clone(); std::thread::spawn(move || { - std::thread::sleep_ms(5000); + std::thread::sleep(Duration::new(5, 0)); let mut lock = machine_wait.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::TimerTriggered); assert_eq!(res, None); @@ -86,7 +87,7 @@ fn main() { // Try to pass a request when the circuit breaker is still open let machine_try = machine.clone(); std::thread::spawn(move || { - std::thread::sleep_ms(1000); + std::thread::sleep(Duration::new(1, 0)); let mut lock = machine_try.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::Successful); assert_eq!(res, None); @@ -94,7 +95,7 @@ fn main() { }); // Test if the circit breaker was actually closed - std::thread::sleep_ms(7000); + std::thread::sleep(Duration::new(7, 0)); { let mut lock = machine.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::Successful); diff --git a/rust_fsm/examples/circuit_breaker_dsl.rs b/rust_fsm/examples/circuit_breaker_dsl.rs index 6a22aab..04b2e03 100644 --- a/rust_fsm/examples/circuit_breaker_dsl.rs +++ b/rust_fsm/examples/circuit_breaker_dsl.rs @@ -6,6 +6,7 @@ extern crate rust_fsm_dsl; use rust_fsm::*; use std::sync::{Arc, Mutex}; +use std::time::Duration; state_machine! { CircuitBreaker(Closed) @@ -31,7 +32,7 @@ fn main() { // Set up a timer let machine_wait = machine.clone(); std::thread::spawn(move || { - std::thread::sleep_ms(5000); + std::thread::sleep(Duration::new(5, 0)); let mut lock = machine_wait.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::TimerTriggered); assert_eq!(res, None); @@ -41,7 +42,7 @@ fn main() { // Try to pass a request when the circuit breaker is still open let machine_try = machine.clone(); std::thread::spawn(move || { - std::thread::sleep_ms(1000); + std::thread::sleep(Duration::new(1, 0)); let mut lock = machine_try.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::Successful); assert_eq!(res, None); @@ -49,7 +50,7 @@ fn main() { }); // Test if the circit breaker was actually closed - std::thread::sleep_ms(7000); + std::thread::sleep(Duration::new(7, 0)); { let mut lock = machine.lock().unwrap(); let res = lock.consume_anyway(&CircuitBreakerInput::Successful); |