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 )