From 2b1933534d9f70d17a7c2366186767e53955a21c Mon Sep 17 00:00:00 2001 From: Evan Feenstra Date: Fri, 2 Jun 2023 14:38:10 -0700 Subject: [PATCH] feat/lss --- broker/src/looper.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/broker/src/looper.rs b/broker/src/looper.rs index 60b60a1..7fa24bc 100644 --- a/broker/src/looper.rs +++ b/broker/src/looper.rs @@ -140,17 +140,15 @@ impl SignerLoop { } fn handle_message(&mut self, message: Vec, catch_init: bool) -> Result> { - // let l = self.lock.lock().unwrap(); + // wait until not busy loop { - let is_busy = self.busy.load(Ordering::Relaxed); - if !is_busy { - // busy now! - self.busy.store(true, Ordering::Relaxed); - break; - } else { - // wait 5 ms - thread::sleep(Duration::from_millis(5)); - } + match self + .busy + .compare_exchange(false, true, Ordering::Acquire, Ordering::Relaxed) + { + Ok(_) => break, + Err(_) => thread::sleep(Duration::from_millis(5)), + }; } let dbid = self.client_id.as_ref().map(|c| c.dbid).unwrap_or(0);