#!/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; }