.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "AnyEvent::Impl::Irssi 3pm" .TH AnyEvent::Impl::Irssi 3pm "2020-11-09" "perl v5.32.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" AnyEvent::Impl::Irssi \- AnyEvent adaptor for Irssi .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use AnyEvent; \& \& # this module gets loaded automatically when running under irssi .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides transparent support for AnyEvent. You don't have to do anything to make Irssi scripts work with AnyEvent. .PP Limitations of this backend and implementation details: .IP "\(bu" 4 This backend does not support blocking waits. .Sp That means you must set a callback on any condvars, or otherwise make sure to never call \f(CW\*(C`recv\*(C'\fR on a condvar that hasn't been signalled yet. .IP "\(bu" 4 Child exits will be handled by AnyEvent. .Sp AnyEvent will take over child handling, as Irssi only polls for children once/second and cannot handle unspecific child watchers. .Sp This \fIshould\fR have no negative effect, as AnyEvent will emit a pidwait signal just like irssi itself would. .IP "\(bu" 4 Artificial timer delays. .Sp Irssi artificially enforces timers to have at least a 10ms delay (by croaking, even). .Sp This means that some applications will be limited to a rate of 100Hz (for example, Coro::AnyEvent thread scheduling). .IP "\(bu" 4 Irssi leaks memory like hell. .Sp Yeah. .PP Apart from that, documentation is notoriously wrong (e.g. file handles are not supported by \f(CW\*(C`input_add\*(C'\fR, 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). .SH "SEE ALSO" .IX Header "SEE ALSO" AnyEvent, Irssi. .SH "AUTHOR" .IX Header "AUTHOR" .Vb 2 \& Marc Lehmann \& http://anyevent.schmorp.de .Ve