From f34434f96b65e294b523b8788d179bfe2fcc01f4 Mon Sep 17 00:00:00 2001 From: carllin Date: Sun, 20 Mar 2022 21:27:24 -0400 Subject: [PATCH] Drop lock (#23765) --- runtime/src/secondary_index.rs | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/runtime/src/secondary_index.rs b/runtime/src/secondary_index.rs index dd499a11c0..825b384847 100644 --- a/runtime/src/secondary_index.rs +++ b/runtime/src/secondary_index.rs @@ -129,18 +129,20 @@ impl pubkeys_map.insert_if_not_exists(inner_key, &self.stats.num_inner_keys); } - let outer_keys = self.reverse_index.get(inner_key).unwrap_or_else(|| { - self.reverse_index - .entry(*inner_key) - .or_insert(RwLock::new(Vec::with_capacity(1))) - .downgrade() - }); + { + let outer_keys = self.reverse_index.get(inner_key).unwrap_or_else(|| { + self.reverse_index + .entry(*inner_key) + .or_insert(RwLock::new(Vec::with_capacity(1))) + .downgrade() + }); - let should_insert = !outer_keys.read().unwrap().contains(key); - if should_insert { - let mut w_outer_keys = outer_keys.write().unwrap(); - if !w_outer_keys.contains(key) { - w_outer_keys.push(*key); + let should_insert = !outer_keys.read().unwrap().contains(key); + if should_insert { + let mut w_outer_keys = outer_keys.write().unwrap(); + if !w_outer_keys.contains(key) { + w_outer_keys.push(*key); + } } }