Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use v5.14;
- use strict;
- use warnings;
- use Data::Dumper;
- my $wbuf1=3;
- my $wbuf2=3;
- my $first;
- my $wtr1;
- my $wtr2;
- print "start\n";
- $first = sub {
- my $done_f = shift;
- $wtr1 = sub {
- print "start wtr1\n";
- my $done_1 = shift;
- my $mbuf=$wbuf1;
- print "cb $wbuf1 $mbuf\n";
- $wbuf1--;
- if ( $wbuf1 ) {
- print "cb wbuf1\n";
- $wtr1->($done_1);
- } else {
- print "cb undef\n";
- undef $wtr1;
- $done_1->();
- print "after exit\n";
- }
- print "return wtr1\n";
- print "cb $wbuf1 $mbuf\n";
- };
- $wtr2 = sub {
- print "start wtr2\n";
- my $done_2 = shift;
- my $mbuf=$wbuf2;
- print "cb $wbuf2 $mbuf\n";
- $wbuf2--;
- if ( $wbuf2 ) {
- print "cb wbuf2\n";
- $wtr2->($done_2);
- } else {
- print "cb undef\n";
- undef $wtr2;
- $wtr1->($done_2);
- print "after exit\n";
- }
- print "return wtr2\n";
- print "cb $wbuf2 $mbuf\n";
- };
- $wtr2->( # Start !!!
- sub {
- my $done_cb = shift;
- print "exit $wbuf1 $wbuf2\n";
- }
- );
- };
- $first->();
- print "stop\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement