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? }
workers = (0...Hardware::CPU.cores).map do
Thread.new do
begin
while p = paths.pop(true)
quiet_system "find", p, "-name", ".DS_Store", "-delete"
Kernel.loop do
begin
quiet_system "find", paths.deq(true), "-name", ".DS_Store", "-delete"
rescue ThreadError
break # if queue is empty
end
rescue ThreadError # ignore empty queue error
end
end
end

View File

@ -11,12 +11,13 @@ module Readall
failed = false
workers = (0...Hardware::CPU.cores).map do
Thread.new do
begin
while rb = ruby_files_queue.pop(true)
Kernel.loop do
begin
# 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
rescue ThreadError # ignore empty queue error
end
end
end