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 ...@@ -7,12 +7,12 @@ module Gitlab
included do included do
@@_metric_provider_mutex ||= Mutex.new @@_metric_provider_mutex ||= Mutex.new
@_metrics_provider_cache = {} @@_metrics_provider_cache = {}
end end
class_methods do class_methods do
def reload_metric!(name) def reload_metric!(name)
@_metrics_provider_cache.delete(name) @@_metrics_provider_cache.delete(name)
end end
private private
...@@ -23,12 +23,12 @@ module Gitlab ...@@ -23,12 +23,12 @@ module Gitlab
end end
define_singleton_method(name) do 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
end end
def fetch_metric(type, name, opts = {}, &block) 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 end
def init_metric(type, name, opts = {}, &block) def init_metric(type, name, opts = {}, &block)
...@@ -44,8 +44,7 @@ module Gitlab ...@@ -44,8 +44,7 @@ module Gitlab
def synchronized_cache_fill(key) def synchronized_cache_fill(key)
@@_metric_provider_mutex.synchronize do @@_metric_provider_mutex.synchronize do
@_metrics_provider_cache ||= {} @@_metrics_provider_cache[key] ||= yield
@_metrics_provider_cache[key] ||= yield
end end
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