aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorXu Cheng2015-09-05 14:27:36 +0800
committerXu Cheng2015-09-06 20:15:37 +0800
commitffdede2ac4dd3f4d4cb1e5d30a98194490104b45 (patch)
tree65a1d62cb03db978329aa8024ae741980cd866f8 /Library/Homebrew/cmd
parent7f3e3b52566fb8b0b1808e489070dae698db9354 (diff)
downloadbrew-ffdede2ac4dd3f4d4cb1e5d30a98194490104b45.tar.bz2
readall: put nostdout in outter layer
The previous code would fail to reset stdout after thread jobs are finshed.
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/readall.rb16
1 files changed, 9 insertions, 7 deletions
diff --git a/Library/Homebrew/cmd/readall.rb b/Library/Homebrew/cmd/readall.rb
index df8644b83..81eaba37d 100644
--- a/Library/Homebrew/cmd/readall.rb
+++ b/Library/Homebrew/cmd/readall.rb
@@ -17,17 +17,19 @@ module Homebrew
end
failed = false
- workers = (0...Hardware::CPU.cores).map do
- Thread.new do
- begin
- while rb = ruby_files.pop(true)
- nostdout { failed = true unless system RUBY_PATH, "-c", "-w", rb }
+ nostdout do
+ workers = (0...Hardware::CPU.cores).map do
+ Thread.new do
+ begin
+ while rb = ruby_files.pop(true)
+ failed = true unless system RUBY_PATH, "-c", "-w", rb
+ end
+ rescue ThreadError # ignore empty queue error
end
- rescue ThreadError # ignore empty queue error
end
end
+ workers.map(&:join)
end
- workers.map(&:join)
Homebrew.failed = failed
end