makes CrdsGossip thread-safe (#18615)

This commit is contained in:
behzad nouri
2021-07-14 22:27:17 +00:00
committed by GitHub
parent 9ed1f24188
commit cf31afdd6a
11 changed files with 477 additions and 471 deletions

View File

@ -296,12 +296,12 @@ mod tests {
let cluster_info = ClusterInfo::new_with_invalid_keypair(this_node);
{
let now = timestamp();
let mut gossip = cluster_info.gossip.write().unwrap();
let mut gossip_crds = cluster_info.gossip.crds.write().unwrap();
// First node is pushed to crds table by ClusterInfo constructor.
for node in nodes.iter().skip(1) {
let node = CrdsData::ContactInfo(node.clone());
let node = CrdsValue::new_unsigned(node);
assert_eq!(gossip.crds.insert(node, now), Ok(()));
assert_eq!(gossip_crds.insert(node, now), Ok(()));
}
}
(nodes, stakes, cluster_info)

View File

@ -192,8 +192,8 @@ mod test {
cluster_info.flush_push_queue();
let lowest = {
let label = CrdsValueLabel::LowestSlot(pubkey);
let gossip = cluster_info.gossip.read().unwrap();
let entry = gossip.crds.get(&label).unwrap();
let gossip_crds = cluster_info.gossip.crds.read().unwrap();
let entry = gossip_crds.get(&label).unwrap();
entry.value.lowest_slot().unwrap().clone()
};
assert_eq!(lowest.lowest, 5);