<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,6 +3,7 @@ Speedup RSpec + Test::Unit + Cucumber by running parallel on multiple CPUs.
 Setup
 =====
 
+    sudo gem install parallel
     script/plugin install git://github.com/grosser/parallel_specs.git
 
 ### 1: Add to `config/database.yml`</diff>
      <filename>README.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,9 @@
+require 'parallel'
+
 class ParallelTests
   # parallel:spec[2,controller] &lt;-&gt; parallel:spec[controller]
   def self.parse_test_args(args)
-    num_processes = ParallelTests::Parallel.processor_count
+    num_processes = Parallel.processor_count
     if args[:count].to_s =~ /^\d*$/ # number or empty
       num_processes = args[:count] unless args[:count].to_s.empty?
       prefix = args[:path_prefix]
@@ -107,78 +109,4 @@ class ParallelTests
   def self.find_tests(root)
     Dir[&quot;#{root}**/**/*_test.rb&quot;]
   end
-
-  #Copy of parallel gem, parallel @ V0.2
-  #please add patches/specs to the parallel project --&gt; https://github.com/grosser/parallel
-  class Parallel
-    def self.in_threads(count=2)
-      out = []
-      threads = []
-
-      count.times do |i|
-        threads[i] = Thread.new do
-          out[i] = yield(i)
-        end
-      end
-
-      threads.each{|t| t.join }
-      out
-    end
-
-    def self.in_processes(count=nil)
-      count ||= processor_count
-
-      #start writing results into n pipes
-      reads = []
-      writes = []
-      pids = []
-      count.times do |i|
-        reads[i], writes[i] = IO.pipe
-        pids &lt;&lt; Process.fork{ Marshal.dump(yield(i), writes[i]) } #write serialized result
-      end
-
-      kill_on_ctrl_c(pids)
-
-      #collect results from pipes simultanously
-      #otherwise pipes get stuck when to much is written (buffer full)
-      out = []
-      collectors = []
-      count.times do |i|
-        collectors &lt;&lt; Thread.new do
-          writes[i].close
-
-          out[i]=&quot;&quot;
-          while text = reads[i].gets
-            out[i] += text
-          end
-
-          reads[i].close
-        end
-      end
-
-      collectors.each{|c|c.join}
-
-      out.map{|x| Marshal.load(x)} #deserialize
-    end
-
-    def self.processor_count
-      case RUBY_PLATFORM
-      when /darwin/
-        `hwprefs cpu_count`.to_i
-      when /linux/
-        `cat /proc/cpuinfo | grep processor | wc -l`.to_i
-      end
-    end
-
-    private
-
-    #handle user interrup (Ctrl+c)
-    def self.kill_on_ctrl_c(pids)
-      Signal.trap 'SIGINT' do
-        STDERR.puts &quot;Parallel execution interrupted, exiting ...&quot;
-        pids.each { |pid| Process.kill(&quot;KILL&quot;, pid) }
-        exit 1
-      end
-    end
-  end
 end
\ No newline at end of file</diff>
      <filename>lib/parallel_tests.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@ namespace :parallel do
   task :prepare, :count do |t,args|
     require File.join(File.dirname(__FILE__), '..', 'lib', &quot;parallel_tests&quot;)
 
-    ParallelTests::Parallel.in_processes(args[:count] ? args[:count].to_i : nil) do |i|
+    Parallel.in_processes(args[:count] ? args[:count].to_i : nil) do |i|
       puts &quot;Preparing test database #{i + 1}&quot;
       `export TEST_ENV_NUMBER=#{ParallelTests.test_env_number(i)} ; rake db:test:prepare`
     end
@@ -14,7 +14,7 @@ namespace :parallel do
   task :migrate, :count do |t,args|
     require File.join(File.dirname(__FILE__), '..', 'lib', &quot;parallel_tests&quot;)
 
-    ParallelTests::Parallel.in_processes(args[:count] ? args[:count].to_i : nil) do |i|
+    Parallel.in_processes(args[:count] ? args[:count].to_i : nil) do |i|
       puts &quot;Migrating test database #{i + 1}&quot;
       `export TEST_ENV_NUMBER=#{ParallelTests.test_env_number(i)} ; rake db:migrate RAILS_ENV=test`
     end
@@ -44,7 +44,7 @@ namespace :parallel do
       
       puts &quot;#{num_processes} processes for #{num_tests} #{name}s, ~ #{num_tests / num_processes} #{name}s per process&quot;
 
-      output = ParallelTests::Parallel.in_processes(num_processes) do |process_number|
+      output = Parallel.in_processes(num_processes) do |process_number|
         klass.run_tests(groups[process_number], process_number)
       end
 </diff>
      <filename>tasks/parallel_specs.rake</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>e6cf1188a00f35bde33e15994a5fe63e870297e3</id>
    </parent>
  </parents>
  <author>
    <name>grosser</name>
    <email>grosser.michael@gmail.com</email>
  </author>
  <url>http://github.com/grosser/parallel_specs/commit/1bbc69a638b26191a43919ecd2dd9353d853c5b4</url>
  <id>1bbc69a638b26191a43919ecd2dd9353d853c5b4</id>
  <committed-date>2009-11-07T04:48:20-08:00</committed-date>
  <authored-date>2009-11-07T04:48:20-08:00</authored-date>
  <message>added parallel gem as requirement, removed local copy of gem</message>
  <tree>77add96739a61cffce5003ebc47811fad164f561</tree>
  <committer>
    <name>grosser</name>
    <email>grosser.michael@gmail.com</email>
  </committer>
</commit>
