# File lib/memcache.rb, line 225
  def get_or_add(key, *args)
    # Pseudo-atomic get and update.
    key = key.to_s
    if block_given?
      opts = args[0] || {}
      get(key) || add(key, yield, opts) || get(key)
    else
      opts = args[1] || {}
      get(key) || add(key, args[0], opts) || get(key)
    end
  end