Skip to content

Commit 7580cd9

Browse files
committed
tweak lock scope
1 parent b823d10 commit 7580cd9

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/query/storages/common/cache/src/providers/memory_cache.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -93,19 +93,18 @@ mod impls {
9393

9494
fn get<Q: AsRef<str>>(&self, k: Q) -> Option<Arc<V>> {
9595
metrics_inc_cache_access_count(1, self.name());
96-
let mut guard = self.inner.write();
97-
match guard.get(k.as_ref()) {
98-
None => {
99-
// TODO move these out lock
100-
metrics_inc_cache_miss_count(1, &self.name);
101-
None
102-
}
103-
Some(cached_value) => {
104-
// TODO move these out of lock
105-
metrics_inc_cache_hit_count(1, &self.name);
106-
Some(cached_value.get_inner())
107-
}
96+
let v = {
97+
let mut guard = self.inner.write();
98+
guard
99+
.get(k.as_ref())
100+
.map(|cache_value: &CacheValue<V>| cache_value.get_inner())
101+
};
102+
if v.is_none() {
103+
metrics_inc_cache_miss_count(1, &self.name);
104+
} else {
105+
metrics_inc_cache_hit_count(1, &self.name);
108106
}
107+
v
109108
}
110109

111110
fn get_sized<Q: AsRef<str>>(&self, k: Q, len: u64) -> Option<Arc<Self::V>> {

0 commit comments

Comments
 (0)