This module provides transparent support for AnyEvent. You dont have to
do anything to make Event work with AnyEvent except by loading Event::Lib
before creating the first AnyEvent watcher.
Note: the AnyEvent author has not found recent releases of Event::Lib to
be even remotely working (not even the examples from the manpage or the
testsuite work), so this event backend should be avoided (or somebody
should step up and maintain it, hint, hint).
The Event::Lib module suffers from the same limitations and bugs as
libevent, most notably it kills already-installed watchers on a file
descriptor and it is unable to support fork. These are not fatal issues,
and are worked-around by this module, but the Event::Lib perl module
itself has many additional bugs such as taking references to file handles
and callbacks instead of making a copy or freeing still-allocated scalars,
causing memory corruption and random crashes. Only Tk rivals it in its
This adaptor module employs the same workaround around the watcher
problems as Tk and should therefore be avoided. (This was done for
simplicity, one could in theory work around the problems with lower
overhead by managing our own watchers).
Event::Lib also leaks file handles and memory and tends to just exit on
It also doesnt work around the Windows bug of not signalling TCP
It also doesnt work with many special devices on Linux (/dev/random
works, /dev/urandom fails, /dev/tty works, /dev/null fails and so
Event::Lib does not support idle watchers. They could be emulated using
low-priority timers but as the priority range (and availability) is not
queryable nor guaranteed, and the default priority is likely the lowest
one, this module cannot use them.
Avoid Event::Lib if you can.