threads::shared 1.18
[p5sagit/p5-mst-13.2.git] / ext / threads / t / stress_string.t
CommitLineData
0f1612a7 1use strict;
2use warnings;
3
1826b481 4BEGIN {
0f1612a7 5 if ($ENV{'PERL_CORE'}){
6 chdir 't';
7 unshift @INC, '../lib';
8 }
9 use Config;
fc04eb16 10 if (! $Config{'useithreads'}) {
11 print("1..0 # Skip: Perl not compiled with 'useithreads'\n");
12 exit(0);
1826b481 13 }
14}
15
16use ExtUtils::testlib;
0f1612a7 17
a662d730 18my $test = 0;
fc04eb16 19sub ok {
a662d730 20 my ($ok, $name) = @_;
21 $test++;
fc04eb16 22
1826b481 23 # You have to do it this way or VMS will get confused.
fc04eb16 24 if ($ok) {
a662d730 25 print("ok $test - $name\n");
fc04eb16 26 } else {
a662d730 27 print("not ok $test - $name\n");
fc04eb16 28 printf("# Failed test at line %d\n", (caller)[2]);
29 }
1826b481 30
fc04eb16 31 return ($ok);
1826b481 32}
33
fc04eb16 34BEGIN {
35 $| = 1;
a662d730 36 print("1..61\n"); ### Number of tests that will be run ###
fc04eb16 37};
38
39use threads;
a662d730 40ok(1, 'Loaded');
1826b481 41
fc04eb16 42### Start of Testing ###
1826b481 43
a662d730 44my $cnt = 30;
45
1826b481 46sub test9 {
fc04eb16 47 my $i = shift;
48 for (1..500000) { $i++ };
1826b481 49}
a662d730 50
1826b481 51my @threads;
a662d730 52for (1..$cnt) {
53 my $thr = threads->create('test9', $_);
54 ok($thr, "Thread created - iter $_");
55 push(@threads, $thr);
1826b481 56}
3dbf27b4 57
a662d730 58for (1..$cnt) {
59 my ($result, $thr);
60 $thr = $threads[$_-1];
61 $result = $thr->join if $thr;
62 ok($thr, "Thread joined - iter $_");
1826b481 63}
64
fc04eb16 65# EOF