Last active
August 15, 2021 02:58
-
-
Save kemurphy/8c5f8580f2955a482da807bfda4083a6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/cmd/zfs_object_agent/zettaobject/src/heartbeat.rs b/cmd/zfs_object_agent/zettaobject/src/heartbeat.rs | |
index a093d27ee..239f2efb5 100644 | |
--- a/cmd/zfs_object_agent/zettaobject/src/heartbeat.rs | |
+++ b/cmd/zfs_object_agent/zettaobject/src/heartbeat.rs | |
@@ -149,21 +149,10 @@ pub async fn start_heartbeat(object_access: ObjectAccess, id: Uuid) -> Heartbeat | |
loop { | |
interval.tick().await; | |
{ | |
- let fut_opt = { | |
- let mut heartbeats = HEARTBEAT.lock().unwrap(); | |
- // We can almost use or_else here, but that doesn't let us change types. | |
- match heartbeats.get(&key).unwrap().upgrade() { | |
- None => { | |
- heartbeats.remove(&key); | |
- info!("Stopping heartbeat with id {}", id); | |
- Some(HeartbeatPhys::delete(&object_access, id)) | |
- } | |
- Some(_) => None, | |
- } | |
- }; | |
- if let Some(fut) = fut_opt { | |
- fut.await; | |
- return; | |
+ let mut heartbeats = HEARTBEAT.lock().unwrap(); | |
+ if let None = heartbeats.get(&key).unwrap().upgrade() { | |
+ heartbeats.remove(&key); | |
+ break; | |
} | |
} | |
let heartbeat = HeartbeatPhys { | |
@@ -185,6 +174,9 @@ pub async fn start_heartbeat(object_access: ObjectAccess, id: Uuid) -> Heartbeat | |
last_heartbeat = Some(heartbeat); | |
} | |
} | |
+ | |
+ info!("Stopping heartbeat with id {}", id); | |
+ HeartbeatPhys::delete(&object_access, id).await; | |
}); | |
let result = rx.changed().await; | |
assert!(result.is_err() || *rx.borrow()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment