Module: Roda::RodaPlugins::PerThreadCaching

Defined in:
lib/roda/plugins/per_thread_caching.rb

Overview

The per_thread_caching plugin changes the default cache from being a shared thread safe cache to a separate cache per thread. This means getting or setting values no longer needs a mutex on non-MRI ruby implementations, which may be faster when using a thread pool. However, since the caches are no longer shared, this will take up more memory.

Note that it does not make sense to use this plugin on MRI, since the default cache on MRI doesn’t use a mutex as it is already thread safe due to the GVL.

Using this plugin changes the matcher regexp cache to use per-thread caches, and changes the default for future thread-safe caches to use per-thread caches.

If you want the render plugin’s template cache to use per-thread caches, you should load this plugin before the render plugin.

Defined Under Namespace

Modules: ClassMethods Classes: Cache

Class Method Summary collapse

Class Method Details

.configure(app) ⇒ Object



25
26
27
# File 'lib/roda/plugins/per_thread_caching.rb', line 25

def self.configure(app)
  app::RodaRequest.match_pattern_cache = app.thread_safe_cache
end