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 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).

SEE ALSO#

AnyEvent, Irssi.

AUTHOR#

Marc Lehmann <schmorp@schmorp.de>
http://anyevent.schmorp.de