# File lib/rake_remote_task.rb, line 435
  def self.set name, value = nil, &default_block
    raise ArgumentError, "cannot provide both a value and a block" if
      value and default_block unless
      value == :per_thread
    raise ArgumentError, "cannot set reserved name: '#{name}'" if
      Rake::RemoteTask.reserved_name?(name) unless $TESTING

    name = name.to_s

    Rake::RemoteTask.per_thread[name] = true if
      default_block && value == :per_thread

    Rake::RemoteTask.default_env[name] = Rake::RemoteTask.env[name] =
      default_block || value

    Object.send :define_method, name do
      Rake::RemoteTask.fetch name
    end
  end