logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

AnyEvent::Impl::Irssi - AnyEvent adaptor for Irssi

Author

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

perl v5.40.0                                       2024-10-20                         AnyEvent::Impl::Irssi(3pm)

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

Name

       AnyEvent::Impl::Irssi - AnyEvent adaptor for Irssi

See Also

       AnyEvent, Irssi.

Synopsis

          use AnyEvent;

          # this module gets loaded automatically when running under irssi

See Also