From 7a0147f88e6a4d4958868dbc1795351588a4ccde Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Tue, 4 Jun 2024 13:04:55 -0700 Subject: [PATCH] do a read on each add --- gg-g_counter/src/main.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gg-g_counter/src/main.rs b/gg-g_counter/src/main.rs index bcaf4a9..edc3498 100644 --- a/gg-g_counter/src/main.rs +++ b/gg-g_counter/src/main.rs @@ -36,13 +36,11 @@ impl Node for Counter { "add" => { let delta = req.body.payload.get("delta").unwrap().as_i64().unwrap(); loop { - let cur = self.0; + let cur = kv.read(runner, KEY).unwrap().unwrap().as_i64().unwrap(); + let cur = cur.max(self.0); let new = cur + delta; match kv.cas(runner, KEY, cur.into(), new.into(), false) { - Err(_e) => { - let cur = kv.read(runner, KEY).unwrap().unwrap().as_i64().unwrap(); - self.0 = cur; - } + Err(_e) => {} Ok(_) => { let nodes = runner .nodes()