drake 0.8.2.1.0.12 → 0.8.2.1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES.drake +4 -0
- data/lib/rake.rb +2 -2
- data/lib/rake/parallel.rb +23 -28
- metadata +2 -2
data/CHANGES.drake
CHANGED
data/lib/rake.rb
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
# as a library via a require statement, but it can be distributed
|
30
30
|
# independently as an application.
|
31
31
|
|
32
|
-
RAKEVERSION = '0.8.2.1.0.
|
32
|
+
RAKEVERSION = '0.8.2.1.0.13'
|
33
33
|
|
34
34
|
require 'rbconfig'
|
35
35
|
require 'fileutils'
|
@@ -582,7 +582,7 @@ module Rake
|
|
582
582
|
application.parallel_tasks.clear
|
583
583
|
application.parallel_parent_flags.clear
|
584
584
|
base_invoke(*args)
|
585
|
-
application.
|
585
|
+
application.invoke_parallel(self.name)
|
586
586
|
}
|
587
587
|
end
|
588
588
|
end
|
data/lib/rake/parallel.rb
CHANGED
@@ -5,25 +5,10 @@ require 'rake/comp_tree/driver'
|
|
5
5
|
|
6
6
|
module Rake
|
7
7
|
module TaskManager
|
8
|
-
# :nodoc:
|
9
|
-
def invoke_parallel_tasks
|
10
|
-
parent_names = parallel_tasks.keys.map { |name|
|
11
|
-
name.to_sym
|
12
|
-
}
|
13
|
-
|
14
|
-
root_name = "computation_root__#{Process.pid}__#{rand}".to_sym
|
15
|
-
|
8
|
+
def invoke_parallel(root_task_name) # :nodoc:
|
16
9
|
CompTree::Driver.new(:discard_result => true) { |driver|
|
17
10
|
#
|
18
|
-
#
|
19
|
-
#
|
20
|
-
# Top-level tasks are immediate children of the root.
|
21
|
-
#
|
22
|
-
driver.define(root_name, *parent_names) {
|
23
|
-
}
|
24
|
-
|
25
|
-
#
|
26
|
-
# build the rest of the computation tree from task prereqs
|
11
|
+
# Build the computation tree from task prereqs.
|
27
12
|
#
|
28
13
|
parallel_tasks.each_pair { |task_name, cache|
|
29
14
|
task = self[task_name]
|
@@ -36,19 +21,29 @@ module Rake
|
|
36
21
|
}
|
37
22
|
}
|
38
23
|
|
24
|
+
root_node = driver.nodes[root_task_name.to_sym]
|
25
|
+
|
39
26
|
#
|
40
|
-
#
|
41
|
-
#
|
42
|
-
driver.nodes[root_name].each_downward { |node|
|
43
|
-
unless node.function
|
44
|
-
node.result = true
|
45
|
-
end
|
46
|
-
}
|
47
|
-
|
48
|
-
#
|
49
|
-
# launch the computation
|
27
|
+
# If there were nothing to do, there would be no root node.
|
50
28
|
#
|
51
|
-
|
29
|
+
if root_node
|
30
|
+
#
|
31
|
+
# Mark computation nodes without a function as computed.
|
32
|
+
#
|
33
|
+
root_node.each_downward { |node|
|
34
|
+
unless node.function
|
35
|
+
node.result = true
|
36
|
+
end
|
37
|
+
}
|
38
|
+
|
39
|
+
#
|
40
|
+
# Launch the computation.
|
41
|
+
#
|
42
|
+
driver.compute(
|
43
|
+
root_node.name,
|
44
|
+
:threads => num_threads,
|
45
|
+
:fork => false)
|
46
|
+
end
|
52
47
|
}
|
53
48
|
end
|
54
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.2.1.0.
|
4
|
+
version: 0.8.2.1.0.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James M. Lawrence
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-09-
|
12
|
+
date: 2008-09-20 00:00:00 -04:00
|
13
13
|
default_executable: drake
|
14
14
|
dependencies: []
|
15
15
|
|