AnyEvent::Impl::Irssi#
AnyEvent adaptor for Irssi
SYNOPSIS#
use AnyEvent;
## this module gets loaded automatically when running under irssi
DESCRIPTION#
This module provides transparent support for AnyEvent. You don’t have to do anything to make Irssi scripts work with AnyEvent.
Limitations of this backend and implementation details:
This backend does not support blocking waits.
That means you must set a callback on any condvars, or otherwise make sure to never call
recvon a condvar that hasn’t been signalled yet.Child exits will be handled by AnyEvent.
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.
Artificial timer delays.
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).
Irssi leaks memory like hell.
Yeah.
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).