diff options
Diffstat (limited to 'lib/rake/multi_task.rb')
-rw-r--r-- | lib/rake/multi_task.rb | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/rake/multi_task.rb b/lib/rake/multi_task.rb new file mode 100644 index 0000000000..21c8de732f --- /dev/null +++ b/lib/rake/multi_task.rb @@ -0,0 +1,16 @@ +module Rake + + # Same as a regular task, but the immediate prerequisites are done in + # parallel using Ruby threads. + # + class MultiTask < Task + private + def invoke_prerequisites(args, invocation_chain) + threads = @prerequisites.collect { |p| + Thread.new(p) { |r| application[r, @scope].invoke_with_call_chain(args, invocation_chain) } + } + threads.each { |t| t.join } + end + end + +end |