Class: RSpec::Core::MemoizedHelpers::ThreadsafeMemoized
- Defined in:
- lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb
Instance Method Summary collapse
- #fetch_or_store(key) ⇒ Object
-
#initialize ⇒ ThreadsafeMemoized
constructor
A new instance of ThreadsafeMemoized.
Constructor Details
#initialize ⇒ ThreadsafeMemoized
Returns a new instance of ThreadsafeMemoized.
171 172 173 174 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb', line 171 def initialize @memoized = {} @mutex = Support::ReentrantMutex.new end |
Instance Method Details
#fetch_or_store(key) ⇒ Object
176 177 178 179 180 181 182 |
# File 'lib/rubypitaya/app-template/vendor/bundle/ruby/3.1.0/gems/rspec-core-3.12.0/lib/rspec/core/memoized_helpers.rb', line 176 def fetch_or_store(key) @memoized.fetch(key) do # only first access pays for synchronization @mutex.synchronize do @memoized.fetch(key) { @memoized[key] = yield } end end end |