develooper Front page | perl.perl5.porters | Postings from January 2012

Re: [perl #108470] Term::ReadLine should use AE instead of Tk forevent looping

From:
Paul LeoNerd Evans
Date:
January 31, 2012 03:03
Subject:
Re: [perl #108470] Term::ReadLine should use AE instead of Tk forevent looping
Message ID:
20120131110310.GI8369@cel.leo
On Mon, Jan 30, 2012 at 03:23:43PM -0500, Rocco Caputo wrote:
> That's a very sane idea.  It nicely sidesteps some maintenance
> pitfalls, like having to explicitly list supported libraries and
> optional dependencies.

+1

> >  my $ae_cb = sub {
> >    my $cv = AE::cv;
> >    AE::io($_[0]->in, 0, sub { $cv->send });
> >    $cv->recv;
> >  };
> >  Term::ReadLine->new(..., read_callback => $ae_cb);

> That's kind of a weird and AE-specific way to do that callback.  A
> more portable API would have two methods: One to access the library's
> file handle, and another to be called when that handle is ready to be
> read.

Yeah, I'd go with this. It's e.g. the same API that libtermkey uses to
integrate with async. event loops:


   int termkey_get_fd(TermKey *tk);

   /* call this when read() might succeed */
   TermKeyResult termkey_advisereadable(TermKey *tk);


Also I'd observe that if myself and Rocco agree on something
async/eventy, it's likely a good consensus position :)

-- 
Paul "LeoNerd" Evans

leonerd@leonerd.org.uk
ICQ# 4135350       |  Registered Linux# 179460
http://www.leonerd.org.uk/



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About