diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-06-23 22:11:55 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-06-23 22:11:55 +0000 |
commit | d001539a0538cba0e48be2ebdafe29e67b006a4e (patch) | |
tree | abf1591ca3b56f04f46cc2cce9918700620a3ab1 /lib/rake/multi_task.rb | |
parent | 3fbc9440feb66cf762834b6d66e6f3a893bab5b7 (diff) |
* lib/rake: Import Rake 0.9.2
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
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 |