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/