AnyEvent-TermKey

 view release on metacpan or  search on metacpan

lib/AnyEvent/TermKey.pm  view on Meta::CPAN

         undef $timeout;

         return unless $termkey->advisereadable == RES_AGAIN;

         my $ret;
         while( ( $ret = $termkey->getkey( my $key ) ) == RES_KEY ) {
            $on_key->( $key );
         }

         if( $ret == RES_AGAIN ) {
            $timeout = AnyEvent->timer(
               after => $termkey->get_waittime / 1000,
               cb => sub {
                  if( $termkey->getkey_force( my $key ) == RES_KEY ) {
                     $on_key->( $key );
                  }
               },
            );
         }
      },
   );

t/03timeout.t  view on Meta::CPAN

my $key_cv = AnyEvent->condvar;

my $aetk = AnyEvent::TermKey->new(
   term => $rd,
   on_key => sub { ( $key ) = @_; $key_cv->send },
);

$wr->syswrite( "\e" );

my $wait_cv = AnyEvent->condvar;
my $timeout = AnyEvent->timer(
   after => $aetk->get_waittime / 2000,
   cb => sub { $wait_cv->send },
);

$wait_cv->recv;

ok( !defined $key, '$key still not defined after 1/2 waittime' );

$key_cv->recv;



( run in 1.145 second using v1.01-cache-2.11-cpan-49f99fa48dc )