diff options
| author | Xu Cheng | 2015-09-05 14:27:36 +0800 |
|---|---|---|
| committer | Xu Cheng | 2015-09-06 20:15:37 +0800 |
| commit | ffdede2ac4dd3f4d4cb1e5d30a98194490104b45 (patch) | |
| tree | 65a1d62cb03db978329aa8024ae741980cd866f8 | |
| parent | 7f3e3b52566fb8b0b1808e489070dae698db9354 (diff) | |
| download | brew-ffdede2ac4dd3f4d4cb1e5d30a98194490104b45.tar.bz2 | |
readall: put nostdout in outter layer
The previous code would fail to reset stdout after thread jobs are finshed.
| -rw-r--r-- | Library/Homebrew/cmd/readall.rb | 16 |
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 |
