diff --git a/Library/Homebrew/cmd/readall.rb b/Library/Homebrew/cmd/readall.rb index df8644b832..81eaba37d5 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