#!/usr/bin/perl
 
 use strict;
+use threads;
 use lib 't';
 use Support::Files;
+use Sys::CPU;
+use Thread::Pool::Simple;
 
 my ($testcount);
 
                      [ '\$slef'                           ],
                     );
 
-foreach my $file (@testitems) {
+sub test_file {
+  my ($file) = @_;
   $file =~ s/\s.*$//;           # nuke everything after the first space (#comment)
-  next if (!$file);             # skip null entries
+  return if (!$file);           # skip null entries
 
   if (open (FILE, $file)) {     # open the file for reading
     $_->[1] = [] foreach @common_errors;
   }
 }
 
-exit 0;
+my $pool = Thread::Pool::Simple->new(
+  min    => 2,
+  max    => Sys::CPU::cpu_count() + 1,
+  do     => [ \&test_file ],
+  passid => 0,
+);
+
+$pool->add($_) for @testitems;
 
+$pool->join;
+
+exit 0;