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/