#!/usr/bin/perl
<<' */'=~m>>;
/*
* How to fool readline into working with Coro
* Category: dirty hack
*/
use Coro;
use Coro::Event;
use Term::ReadLine;
$|=1;
my $rl = new Term::ReadLine "Coro";
# fool the Term::ReadLine packages..
my $stdin_ready = Coro::Event->io(fd => \*STDIN, poll => "r");
sub Term::ReadLine::Tk::Tk_loop { $stdin_ready->next }
sub Tk::DoOneEvent { }
sub Term::ReadLine::Tk::register_Tk { }
$rl->tkRunning(1);
async {
while ($rl->readline("Enter EXIT to exit> ") ne "exit") {
print "not exiting yet...\n";
}
unloop;
};
async {
my $timer = Coro::Event->timer(after => 1, interval => 1, hard => 1);
while ($timer->next) {
print ".";
}
};
cede; # make sure the watchers are installed
loop;