class ThreadSafe::MriCacheBackend

def []=(key, value)

def []=(key, value)
  WRITE_LOCK.synchronize { super }
end

def clear

def clear
  WRITE_LOCK.synchronize { super }
end

def compute(key)

def compute(key)
  WRITE_LOCK.synchronize { super }
end

def compute_if_absent(key)

def compute_if_absent(key)
  if stored_value = _get(key) # fast non-blocking path for the most likely case
    stored_value
  else
    WRITE_LOCK.synchronize { super }
  end
end

def compute_if_present(key)

def compute_if_present(key)
  WRITE_LOCK.synchronize { super }
end

def delete(key)

def delete(key)
  WRITE_LOCK.synchronize { super }
end

def delete_pair(key, value)

def delete_pair(key, value)
  WRITE_LOCK.synchronize { super }
end

def get_and_set(key, value)

def get_and_set(key, value)
  WRITE_LOCK.synchronize { super }
end

def merge_pair(key, value)

def merge_pair(key, value)
  WRITE_LOCK.synchronize { super }
end

def replace_if_exists(key, new_value)

def replace_if_exists(key, new_value)
  WRITE_LOCK.synchronize { super }
end

def replace_pair(key, old_value, new_value)

def replace_pair(key, old_value, new_value)
  WRITE_LOCK.synchronize { super }
end