From 2ba9ca95f99c14cd95e90b7bb172ebb29ab25a72 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Wed, 10 Sep 2008 18:56:03 -0500 Subject: Removed monitor from MemoryStore and created a seperate threadsafe store called SynchronizedMemoryStore --- .../cache/synchronized_memory_store.rb | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 activesupport/lib/active_support/cache/synchronized_memory_store.rb (limited to 'activesupport/lib/active_support/cache/synchronized_memory_store.rb') diff --git a/activesupport/lib/active_support/cache/synchronized_memory_store.rb b/activesupport/lib/active_support/cache/synchronized_memory_store.rb new file mode 100644 index 0000000000..d2ff28768f --- /dev/null +++ b/activesupport/lib/active_support/cache/synchronized_memory_store.rb @@ -0,0 +1,46 @@ +module ActiveSupport + module Cache + class SynchronizedMemoryStore < MemoryStore + def initialize + super + @guard = Monitor.new + end + + def fetch(key, options = {}) + @guard.synchronize { super } + end + + def read(name, options = nil) + @guard.synchronize { super } + end + + def write(name, value, options = nil) + @guard.synchronize { super } + end + + def delete(name, options = nil) + @guard.synchronize { super } + end + + def delete_matched(matcher, options = nil) + @guard.synchronize { super } + end + + def exist?(name,options = nil) + @guard.synchronize { super } + end + + def increment(key, amount = 1) + @guard.synchronize { super } + end + + def decrement(key, amount = 1) + @guard.synchronize { super } + end + + def clear + @guard.synchronize { super } + end + end + end +end -- cgit v1.2.3