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