File tree Expand file tree Collapse file tree 1 file changed +11
-12
lines changed
src/query/storages/common/cache/src/providers Expand file tree Collapse file tree 1 file changed +11
-12
lines changed Original file line number Diff line number Diff 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 > > {
You can’t perform that action at this time.
0 commit comments