Subject: | Regression: Deep recursion on subroutine "Foo::new" |
The following test case is broken in latest release while it worked in previous ones:
===
package Flow;
use Moo;
has 'foo' => (is => 'rw');
package BridgeFlow;
use Moo;
extends 'Flow';
package main;
use threads;
threads->create(sub { BridgeFlow->new })->join;
===
The above code outputs:
Thread 1 terminated abnormally: Deep recursion on subroutine "Flow::new" at /Library/Perl/5.12/Sub/Defer.pm line 41.
Devel::Trace shows what the tight loop is. I don't understand why this only happens with multiple threads; I guess some cache table is not cloned correctly or something. Thank you!