Commit ffac08d2 authored by Pawel Chojnacki's avatar Pawel Chojnacki

Use class variables for metrics provider cache

parent 7772dfb7
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment