Thread Unerwartete Ergenisse mit Promise.start (10 answers)
Opened by Kuerbis at 2015-09-02 12:52

Kuerbis
 2015-09-05 08:17
#182061 #182061
User since
2011-03-20
947 Artikel
BenutzerIn
[default_avatar]
Jetzt habe ichs nochmal mit "lock" probiert:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env perl6
use v6;

my $n = 50;
my $runs = 10000;
my $result;
for ^$n { $result += $_ ** $_ }


for ^$runs {
    my @p;
    my $sum;
    my $lock = Lock.new;
    for ^$n -> $i {
        #push @p, Promise.start( { $lock.protect( { $sum += $i ** $i } ) } );
        push @p, Promise.start( {
            my $t = $i ** $i;
            $lock.protect( { $sum += $t } );
        } );
    }
    await @p;
    say "$sum $_";
    die $_ if $sum != $result;
}

View full thread Unerwartete Ergenisse mit Promise.start