Use ThreadError to break loop.

This commit is contained in:
Markus Reiter 2016-08-22 08:52:42 +02:00
parent ff30a303c8
commit 7b8bae710e
2 changed files with 10 additions and 8 deletions

View File

@ -121,11 +121,12 @@ module Homebrew
map { |p| HOMEBREW_PREFIX/p }.each { |p| paths << p if p.exist? } map { |p| HOMEBREW_PREFIX/p }.each { |p| paths << p if p.exist? }
workers = (0...Hardware::CPU.cores).map do workers = (0...Hardware::CPU.cores).map do
Thread.new do Thread.new do
begin Kernel.loop do
while p = paths.pop(true) begin
quiet_system "find", p, "-name", ".DS_Store", "-delete" quiet_system "find", paths.deq(true), "-name", ".DS_Store", "-delete"
rescue ThreadError
break # if queue is empty
end end
rescue ThreadError # ignore empty queue error
end end
end end
end end

View File

@ -11,12 +11,13 @@ module Readall
failed = false failed = false
workers = (0...Hardware::CPU.cores).map do workers = (0...Hardware::CPU.cores).map do
Thread.new do Thread.new do
begin Kernel.loop do
while rb = ruby_files_queue.pop(true) begin
# As a side effect, print syntax errors/warnings to `$stderr`. # As a side effect, print syntax errors/warnings to `$stderr`.
failed = true if syntax_errors_or_warnings?(rb) failed = true if syntax_errors_or_warnings?(ruby_files_queue.deq(true))
rescue ThreadError
break
end end
rescue ThreadError # ignore empty queue error
end end
end end
end end