# New Ticket Created by  J . David Lowe 
# Please include the string:  [perl #132042]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org/Ticket/Display.html?id=132042 >


This short program hangs indefinitely on my system (after making progress.) 
Tuning the number of threads and number of iterations can change how reliably 
it hangs (down to 'never' when the number of threads is < 3, for me.)

```
#!/usr/bin/env perl6

use v6.c;

await (^6).map: -> $t {
   start {
      for (^500) -> $i {
         my $current = %( 1 => %( 2 => %( 3 => %() ) ) );
         my $index = 1;
         while $current{$index}:exists {
            say "$t $i $index";
            $current = $current{$index};
            ++$index;
         }
      }
   }
}
```

... this is a distilled version of some tree-walking code that's misbehaving 
for me IRL. It's possible that I'm doing something naughty here, but I don't 
see how. Am I missing something? (I can eliminate the deadlock by 
Lock.protect-ing the inner while loop, FWIW... but I don't see why that should 
be necessary.)

More information:

```
$ perl6 --version
This is Rakudo version 2017.07 built on MoarVM version 2017.07
implementing Perl 6.c.
```

Reply via email to