diff options
Diffstat (limited to 'contrib/perl5/ext/Thread/unsync4.t')
| -rw-r--r-- | contrib/perl5/ext/Thread/unsync4.t | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/contrib/perl5/ext/Thread/unsync4.t b/contrib/perl5/ext/Thread/unsync4.t new file mode 100644 index 0000000000000..494ad2be92008 --- /dev/null +++ b/contrib/perl5/ext/Thread/unsync4.t @@ -0,0 +1,38 @@ +use Thread; + +$| = 1; + +srand($$^$^T); + +sub printargs { +    my(@copyargs) = @_; +    my $thread = shift @copyargs; +    my $arg; +    my $i; +    while ($arg = shift @copyargs) { +	my $delay = int(rand(500)); +	$i++; +	print "$thread arg $i is $arg\n"; +	1 while $delay--; +    } +} + +sub start_thread { +    my(@threadargs) = @_; +    my $thread = $threadargs[0]; +    my $count = 10; +    while ($count--) { +	my(@args) = ($thread) x int(rand(10)); +	print "$thread $count calling printargs @args\n"; +	printargs($thread, @args); +    } +} + +new Thread (\&start_thread, "A"); +new Thread (\&start_thread, "B"); +new Thread (\&start_thread, "C"); +new Thread (\&start_thread, "D"); +new Thread (\&start_thread, "E"); +new Thread (\&start_thread, "F"); + +print "main: exiting\n"; | 
