hakobe (owner)

Revisions

gist: 82696 Download_button fork
public
Public Clone URL: git://gist.github.com/82696.git
Embed All Files: show embed
generator_coro_channel.pl #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use strict;
use warnings;
use Coro;
use Coro::Channel;
use Perl6::Say;
 
my $resume;
my $yield;
my $func;
{
    my $ch = Coro::Channel->new;
    $resume = sub {
        cede;
        $ch->get;
    };
    $yield = sub {
        $ch->put(shift);
        cede;
    };
    async {
        $func->();
    };
}
 
$func = sub {
    my $n = 0;
    while (1) {
        $yield->($n++);
    }
};
 
say $resume->(); # 0
say $resume->(); # 1
say $resume->(); # 2