1BEGIN { 2 eval { require Config; import Config }; 3 if ($@) { 4 print "1..0 # Skip: no Config\n"; 5 exit(0); 6 } 7} 8 9use Thread; 10 11$| = 1; 12 13srand($$^$^T); 14 15sub printargs { 16 my(@copyargs) = @_; 17 my $thread = shift @copyargs; 18 my $arg; 19 my $i; 20 while ($arg = shift @copyargs) { 21 my $delay = int(rand(500)); 22 $i++; 23 print "$thread arg $i is $arg\n"; 24 1 while $delay--; 25 } 26} 27 28sub start_thread { 29 my(@threadargs) = @_; 30 my $thread = $threadargs[0]; 31 my $count = 10; 32 while ($count--) { 33 my(@args) = ($thread) x int(rand(10)); 34 print "$thread $count calling printargs @args\n"; 35 printargs($thread, @args); 36 } 37} 38 39new Thread (\&start_thread, "A"); 40new Thread (\&start_thread, "B"); 41new Thread (\&start_thread, "C"); 42new Thread (\&start_thread, "D"); 43new Thread (\&start_thread, "E"); 44new Thread (\&start_thread, "F"); 45 46print "main: exiting\n"; 47