Method: Rake::Task#invoke_prerequisites_concurrently

Defined in:
lib/rake/task.rb

#invoke_prerequisites_concurrently(task_args, invocation_chain) ⇒ Object

Invoke all the prerequisites of a task in parallel.



249
250
251
252
253
254
255
256
257
258
# File 'lib/rake/task.rb', line 249

def invoke_prerequisites_concurrently(task_args, invocation_chain)# :nodoc:
  futures = prerequisite_tasks.map do |p|
    prereq_args = task_args.new_scope(p.arg_names)
    application.thread_pool.future(p) do |r|
      r.invoke_with_call_chain(prereq_args, invocation_chain)
    end
  end
  # Iterate in reverse to improve performance related to thread waiting and switching
  futures.reverse_each(&:value)
end