class Concurrent::Collection::SynchronizedMapBackend

@!visibility private

def [](key)

def [](key)
  @mutex.synchronize { super }
end

def []=(key, value)

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

def clear

def clear
  @mutex.synchronize { super }
end

def compute(key)

def compute(key)
  @mutex.synchronize { super }
end

def compute_if_absent(key)

def compute_if_absent(key)
  @mutex.synchronize { super }
end

def compute_if_present(key)

def compute_if_present(key)
  @mutex.synchronize { super }
end

def delete(key)

def delete(key)
  @mutex.synchronize { super }
end

def delete_pair(key, value)

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

def dupped_backend

def dupped_backend
  @mutex.synchronize { super }
end

def get_and_set(key, value)

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

def get_or_default(key, default_value)

def get_or_default(key, default_value)
  @mutex.synchronize { super }
end

def initialize(*args, &block)

def initialize(*args, &block)
  super
  # WARNING: Mutex is a non-reentrant lock, so the synchronized methods are
  # not allowed to call each other.
  @mutex = Mutex.new
end

def key?(key)

def key?(key)
  @mutex.synchronize { super }
end

def merge_pair(key, value)

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

def replace_if_exists(key, new_value)

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

def replace_pair(key, old_value, new_value)

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

def size

def size
  @mutex.synchronize { super }
end