# New Ticket Created by J . David Lowe # Please include the string: [perl #131983] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=131983 >
This short program behaves dies on my system, apparently because the mixed-in attribute is somehow "leaking" between the two threads (???): ``` #!/usr/bin/env perl6 await((^2).map: { start { for (^10) -> $i { my $x = Str.new but role { has $.test = $i }; die "$i != " ~ $x.test unless $x.test == $i; } } }); ``` produces output like: ``` $ ./bug Tried to get the result of a broken Promise in block <unit> at ./bug line 3 Original exception: 1 != 2 in block at ./bug line 7 $ ./bug Tried to get the result of a broken Promise in block <unit> at ./bug line 3 Original exception: 3 != 4 in block at ./bug line 7 ``` It's possible that what I'm doing in this code isn't *intended* to be thread-safe, but if that's the case, I don't understand why (e.g. looking at the code, the two threads appear to be completely isolated.) More information: ``` $ perl6 --version This is Rakudo version 2017.07 built on MoarVM version 2017.07 implementing Perl 6.c. ```