feat(chain-state): notify about new safe/finalized only if modified (#11383)

This commit is contained in:
Alexey Shekhirin
2024-10-02 14:51:41 +03:00
committed by GitHub
parent afbe2bb5e9
commit b44fff4dd0

View File

@@ -112,15 +112,25 @@ impl ChainInfoTracker {
/// Sets the safe header of the chain.
pub fn set_safe(&self, header: SealedHeader) {
self.inner.safe_block.send_modify(|h| {
let _ = h.replace(header);
self.inner.safe_block.send_if_modified(|current_header| {
if current_header.as_ref().map(SealedHeader::hash) != Some(header.hash()) {
let _ = current_header.replace(header);
return true
}
false
});
}
/// Sets the finalized header of the chain.
pub fn set_finalized(&self, header: SealedHeader) {
self.inner.finalized_block.send_modify(|h| {
let _ = h.replace(header);
self.inner.finalized_block.send_if_modified(|current_header| {
if current_header.as_ref().map(SealedHeader::hash) != Some(header.hash()) {
let _ = current_header.replace(header);
return true
}
false
});
}