class Prawn::SynchronizedCache
Throughout the Prawn codebase, repeated calculations which can benefit from caching are made. n some cases, caching and reusing results can not only save CPU cycles but also greatly reduce memory requirements But at the same time, we don’t want to throw away thread safety. @private
Public Class Methods
Source
# File lib/prawn/utilities.rb, line 12 def initialize @cache = {} @mutex = Mutex.new end
As an optimization, this could access the hash directly on VMs with a global interpreter lock (like MRI).
Public Instance Methods
Source
# File lib/prawn/utilities.rb, line 21 def [](key) @mutex.synchronize { @cache[key] } end
Get cache entry.
@param key [any] @return [any]
Source
# File lib/prawn/utilities.rb, line 30 def []=(key, value) @mutex.synchronize { @cache[key] = value } end
Set cache entry.
@param key [any] @param value [any] @return [void]