… | |
… | |
39 | our $curr = new Coro::Specific; |
39 | our $curr = new Coro::Specific; |
40 | our @result; |
40 | our @result; |
41 | |
41 | |
42 | sub cont(&) { |
42 | sub cont(&) { |
43 | my $code = $_[0]; |
43 | my $code = $_[0]; |
44 | my $coro = new Coro::State sub { |
44 | my $coro = new Coro::State sub { &$code while 1 }; |
45 | &$code while 1; |
|
|
46 | }; |
|
|
47 | my $prev = new Coro::State; |
45 | my $prev = new Coro::State; |
48 | sub { |
46 | sub { |
49 | push @$$curr, [$coro, $prev]; |
47 | push @$$curr, [$coro, $prev]; |
50 | $prev->transfer($coro); |
48 | $prev->transfer($coro); |
51 | wantarray ? @{pop @result} : ${pop @result}[0]; |
49 | wantarray ? @{pop @result} : ${pop @result}[0]; |