Module: Rake::Parallel::TaskMixin

Defined in:
lib/rake/parallel.rb

Instance Method Summary collapse

Instance Method Details

#collect_for_parallel_execution(task_args, new_chain, previous_chain) ⇒ Object

Collect tasks for parallel execution.

Called from Task#invoke_with_call_chain.



108
109
110
111
112
113
114
115
116
117
# File 'lib/rake/parallel.rb', line 108

def collect_for_parallel_execution(task_args, new_chain, previous_chain)
  # call Task#invoke_prerequisites directly (avoid overrides)
  prereqs = Task.instance_method(:invoke_prerequisites).
    bind(self).call(task_args, new_chain)

  tasks = application.parallel.tasks
  if needed? or prereqs.any? { |p| tasks[p] }
    tasks[self] = [task_args, prereqs]
  end
end

#invoke_parallel(*task_args) ⇒ Object

Top-level parallel invocation.

Called from Task#invoke.



98
99
100
101
# File 'lib/rake/parallel.rb', line 98

def invoke_parallel(*task_args)
  application.parallel.
    invoke(application.options.threads, self, *task_args)
end