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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
  
     | 
    
      use AnyEvent;
use AnyEvent::Util;
         BEGIN { $ENV{PERL_ANYEVENT_LOOP_TESTS} or ((print qq{1..0 # SKIP PERL_ANYEVENT_LOOP_TESTS not true\n}), exit 0) }
         BEGIN { eval q{use AnyEvent::Impl::Event;1} or ((print qq{1..0 # SKIP AnyEvent::Impl::Event not loadable\n}), exit 0) }
         
      
$| = 1; print "1..18\n";
print "ok 1\n";
my ($a, $b) = AnyEvent::Util::portable_socketpair;
print $a && $b ? "" : "not ", "ok 2 # $a,$b\n";
my ($cv, $t, $ra, $wa, $rb, $wb);
$rb = AnyEvent->io (fh => $b, poll => "r", cb => sub {
   print "ok 6\n";
   sysread $b, my $buf, 1;
   print "ok 7\n";
   $wb = AnyEvent->io (fh => $b, poll => "w", cb => sub {
      print "ok 8\n";
      undef $wb;
      syswrite $b, "1";
   });
});
print "ok 3\n";
{ my $cv = AnyEvent->condvar; $t = AnyEvent->timer (after => 0.05, cb => sub { $cv->send }); $cv->recv }
print "ok 4\n";
$wa = AnyEvent->io (fh => $a, poll => "w", cb => sub {
   syswrite $a, "0";
   undef $wa;
   print "ok 5\n";
});
$ra = AnyEvent->io (fh => $a, poll => "r", cb => sub {
   sysread $a, my $buf, 1;
   print "ok 9\n";
   $cv->send;
});
$cv = AnyEvent->condvar; $cv->recv;
print "ok 10\n";
$rb = AnyEvent->io (fh => fileno $b, poll => "r", cb => sub {
   print "ok 14\n";
   sysread $b, my $buf, 1;
   print "ok 15\n";
   $wb = AnyEvent->io (fh => fileno $b, poll => "w", cb => sub {
      print "ok 16\n";
      undef $wb;
      syswrite $b, "1";
   });
});
print "ok 11\n";
{ my $cv = AnyEvent->condvar; $t = AnyEvent->timer (after => 0.05, cb => sub { $cv->send }); $cv->recv }
print "ok 12\n";
$wa = AnyEvent->io (fh => fileno $a, poll => "w", cb => sub {
   syswrite $a, "0";
   undef $wa;
   print "ok 13\n";
});
$ra = AnyEvent->io (fh => $a, poll => "r", cb => sub {
   sysread $a, my $buf, 1;
   print "ok 17\n";
   $cv->send;
});
$cv = AnyEvent->condvar; $cv->recv;
print "ok 18\n";
 
     |