++ed by:

2 PAUSE users
1 non-PAUSE user.

Dave Rolsky
and 2 contributors


File::ChangeNotify::Watcher::KQueue - KQueue-based watcher subclass


This class implements watching using IO::KQueue, which must be installed for it to work. This is a BSD alternative to Linux's Inotify and similar event-based systems.


Although this watcher is more efficient and accurate than the File::ChangeNotify::Watcher::Default class, in order to monitor files and directories, it must open filehandles to each of them. Because many BSD systems have relatively low defaults for the maximum number of files each process can open, you may find you run out of file descriptors.

On FreeBSD, you can check (and alter) your system's settings with sysctl if necessary. The important keys are: kern.maxfiles and kern.maxfilesperproc. You can see how many files your system current has open with kern.openfiles.

On OpenBSD, the sysctl keys are kern.maxfiles and kern.nfiles. Per-process limits are set in /etc/login.conf. See login.conf(5) for details.


I (Dave Rolsky) cannot test this class, as I have no BSD systems. Reasonable patches will be applied as-is, and when possible I will consult with Dan Thomas or other BSD users before releasing.


Dan Thomas, <dan@cpan.org>