1 | #!perl |
1 | #!perl |
2 | |
2 | |
3 | use strict; |
3 | use strict; |
4 | |
4 | |
5 | use AnyEvent::Impl::Perl; |
5 | use AnyEvent; |
|
|
6 | BEGIN { require AnyEvent::Impl::Perl unless $ENV{PERL_ANYEVENT_MODEL} } |
6 | use AnyEvent::Handle; |
7 | use AnyEvent::Handle; |
7 | use Socket; |
8 | use Socket; |
8 | |
9 | |
9 | print "1..7\n"; |
10 | print "1..7\n"; |
10 | |
11 | |
… | |
… | |
30 | } |
31 | } |
31 | ); |
32 | ); |
32 | |
33 | |
33 | my $dat = ''; |
34 | my $dat = ''; |
34 | |
35 | |
35 | $rd_ae->push_read_chunk (5132, sub { |
36 | $rd_ae->push_read (chunk => 5132, sub { |
36 | my ($rd_ae, $data) = @_; |
37 | my ($rd_ae, $data) = @_; |
37 | $dat = substr $data, 0, 2; |
38 | $dat = substr $data, 0, 2; |
38 | $dat .= substr $data, -5; |
39 | $dat .= substr $data, -5; |
39 | |
40 | |
40 | print "ok 4 - first read chunk\n"; |
41 | print "ok 4 - first read chunk\n"; |
|
|
42 | my $n = 5; |
41 | $wr_ae->push_write ("A" x 5000); |
43 | $wr_ae->push_write ("A" x 5000); |
42 | $wr_ae->on_drain (sub { |
44 | $wr_ae->on_drain (sub { |
43 | my ($wr_ae) = @_; |
45 | my ($wr_ae) = @_; |
44 | $wr_ae->on_drain; |
46 | $wr_ae->on_drain; |
45 | print "ok 5 - fourth write\n"; |
47 | print "ok " . $n++ . " - fourth write\n"; |
46 | |
48 | |
|
|
49 | }); |
|
|
50 | |
47 | $rd_ae->push_read_chunk (1, sub { |
51 | $rd_ae->push_read (chunk => 5000, sub { |
48 | print "ok 6 - second read chunk\n"; |
52 | print "ok " . $n++ . " - second read chunk\n"; |
49 | $cv->broadcast |
53 | $cv->broadcast |
50 | }); |
|
|
51 | }); |
54 | }); |
52 | }); |
55 | }); |
53 | |
56 | |
54 | $wr_ae->push_write ("A" x 5000); |
57 | $wr_ae->push_write ("A" x 5000); |
55 | $wr_ae->push_write ("X" x 130); |
58 | $wr_ae->push_write ("X" x 130); |