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