--- EV/Makefile.PL 2015/06/20 11:11:01 1.57 +++ EV/Makefile.PL 2019/06/22 15:50:36 1.58 @@ -145,6 +145,28 @@ *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** +Linux 4.18 introduced another event polling interface, this time using +the Linux AIO API. While this API is far superior to epoll and almost +rivals kqueue, it also suffers from the same issues as kqueue typically +does: only a subset of file types are supported (as of 4.19, I have seen +eventfd, pipes, sockets files and some devices, but no ttys). It also +is subject arbitrary system-wide limits imposed on it. Therefore, this +backend is not used by default, even when it is compiled in, and you have +to request it explicitly, e.g. with LIBEV_FLAGS=64. If unsure, accept the +default. + +EOF + +my $can_linuxaio = have_inc "linux/aio_abi.h"; +$can_linuxaio or die; +$can_linuxaio = $ENV{EV_LINUXAIO} if exists $ENV{EV_LINUXAIO}; +$DEFINE .= " -DEV_USE_LINUXAIO=" . (0 + (prompt ("Enable linux aio backend (y/n)?", $can_linuxaio ? "y" : "n") =~ /[yY]/)); + +print <