module Dalli::Threadsafe

Make Dalli threadsafe by using a lock around all public server methods.

Dalli::Server.extend(Dalli::Threadsafe)

Public Class Methods

extended(obj) click to toggle source
# File lib/dalli/options.rb, line 12
def self.extended(obj)
  obj.init_threadsafe
end

Public Instance Methods

alive?() click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 22
def alive?
  @lock.synchronize do
    super
  end
end
close() click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 28
def close
  @lock.synchronize do
    super
  end
end
init_threadsafe() click to toggle source
# File lib/dalli/options.rb, line 60
def init_threadsafe
  @lock = Monitor.new
end
lock!() click to toggle source
# File lib/dalli/options.rb, line 52
def lock!
  @lock.mon_enter
end
multi_response_abort() click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 46
def multi_response_abort
  @lock.synchronize do
    super
  end
end
multi_response_nonblock() click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 40
def multi_response_nonblock
  @lock.synchronize do
    super
  end
end
multi_response_start() click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 34
def multi_response_start
  @lock.synchronize do
    super
  end
end
request(op, *args) click to toggle source
Calls superclass method
# File lib/dalli/options.rb, line 16
def request(op, *args)
  @lock.synchronize do
    super
  end
end
unlock!() click to toggle source
# File lib/dalli/options.rb, line 56
def unlock!
  @lock.mon_exit
end