use AnyEvent; # this module gets loaded automatically when running under irssi
Limitations of this backend and implementation details:
That means you must set a callback on any condvars, or otherwise make sure to never call "recv" on a condvar that hasn't been signalled yet.
AnyEvent will take over child handling, as Irssi only polls for children once/second and cannot handle unspecific child watchers.
This should have no negative effect, as AnyEvent will emit a pidwait signal just like irssi itself would.
Irssi artificially enforces timers to have at least a 10ms delay (by croaking, even).
This means that some applications will be limited to a rate of 100Hz (for example, Coro::AnyEvent thread scheduling).
Apart from that, documentation is notoriously wrong (e.g. file handles are not supported by "input_add", contrary to documentation), hooking into irssi has to be done in... weird... ways, but otherwise, Irssi is surprisingly full-featured (for basically being a hack).
Marc Lehmann <email@example.com> http://anyevent.schmorp.de