AnyEvent::Impl::Irssi - AnyEvent adaptor for Irssi
use AnyEvent;
# this module gets loaded automatically when running under irssi
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 "recv" on 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).
AnyEvent, Irssi.
Marc Lehmann <[email protected]>
http://anyevent.schmorp.de