Use class variables for metrics provider cache
This commit is contained in:
		
							parent
							
								
									7772dfb788
								
							
						
					
					
						commit
						ffac08d290
					
				| 
						 | 
				
			
			@ -7,12 +7,12 @@ module Gitlab
 | 
			
		|||
 | 
			
		||||
      included do
 | 
			
		||||
        @@_metric_provider_mutex ||= Mutex.new
 | 
			
		||||
        @_metrics_provider_cache = {}
 | 
			
		||||
        @@_metrics_provider_cache = {}
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      class_methods do
 | 
			
		||||
        def reload_metric!(name)
 | 
			
		||||
          @_metrics_provider_cache.delete(name)
 | 
			
		||||
          @@_metrics_provider_cache.delete(name)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        private
 | 
			
		||||
| 
						 | 
				
			
			@ -23,12 +23,12 @@ module Gitlab
 | 
			
		|||
          end
 | 
			
		||||
 | 
			
		||||
          define_singleton_method(name) do
 | 
			
		||||
            @_metrics_provider_cache&.[](name) || init_metric(type, name, opts, &block)
 | 
			
		||||
            @@_metrics_provider_cache[name] || init_metric(type, name, opts, &block)
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        def fetch_metric(type, name, opts = {}, &block)
 | 
			
		||||
          @_metrics_provider_cache&.[](name) || init_metric(type, name, opts, &block)
 | 
			
		||||
          @@_metrics_provider_cache[name] || init_metric(type, name, opts, &block)
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        def init_metric(type, name, opts = {}, &block)
 | 
			
		||||
| 
						 | 
				
			
			@ -44,8 +44,7 @@ module Gitlab
 | 
			
		|||
 | 
			
		||||
        def synchronized_cache_fill(key)
 | 
			
		||||
          @@_metric_provider_mutex.synchronize do
 | 
			
		||||
            @_metrics_provider_cache ||= {}
 | 
			
		||||
            @_metrics_provider_cache[key] ||= yield
 | 
			
		||||
            @@_metrics_provider_cache[key] ||= yield
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue