From 60bdb16a7c19b1dc6532ad5606b0abcdab996d9c Mon Sep 17 00:00:00 2001 From: hazz Date: Wed, 8 Aug 2012 22:25:04 +0100 Subject: [PATCH] Run each search_tap in a separate thread to speed things up. Closes Homebrew/homebrew#14066. Signed-off-by: Max Howell --- Library/Homebrew/cmd/search.rb | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb index 1b59e2d72d..4f2481db93 100644 --- a/Library/Homebrew/cmd/search.rb +++ b/Library/Homebrew/cmd/search.rb @@ -31,12 +31,19 @@ module Homebrew extend self if query $found = search_results.length - # TODO parallelize! - puts_columns search_tap "josegonzalez", "php", rx - puts_columns search_tap "Homebrew", "versions", rx - puts_columns search_tap "Homebrew", "dupes", rx - puts_columns search_tap "Homebrew", "games", rx - puts_columns search_tap "Homebrew", "science", rx + threads = [] + results = [] + threads << Thread.new { search_tap "josegonzalez", "php", rx } + threads << Thread.new { search_tap "Homebrew", "versions", rx } + threads << Thread.new { search_tap "Homebrew", "dupes", rx } + threads << Thread.new { search_tap "Homebrew", "games", rx } + threads << Thread.new { search_tap "Homebrew", "science", rx } + + threads.each do |t| + results << t.value + end + + results.each { |r| puts_columns r } if $found == 0 and not blacklisted? query puts "No formula found for \"#{query}\". Searching open pull requests..."