class LaunchDarkly::MemoizedValue
Simple implementation of a thread-safe memoized value whose generator function will never be run more than once, and whose value can be overridden by explicit assignment. Note that we no longer use this class and it will be removed in a future version. @private
Public Class Methods
new(&generator)
click to toggle source
# File lib/ldclient-rb/memoized_value.rb, line 8 def initialize(&generator) @generator = generator @mutex = Mutex.new @inited = false @value = nil end
Public Instance Methods
get()
click to toggle source
# File lib/ldclient-rb/memoized_value.rb, line 15 def get @mutex.synchronize do if !@inited @value = @generator.call @inited = true end end @value end
set(value)
click to toggle source
# File lib/ldclient-rb/memoized_value.rb, line 25 def set(value) @mutex.synchronize do @value = value @inited = true end end