Commit graph

3 commits

Author SHA1 Message Date
jmmv
260fe2f2cb Fix some long-standing kqueue bugs that have been bothering me for a long
time.  For example, simply running 'nautilus /' could lock up famd in pipewr
status.  To fix:

- Make the struct devino's sorting function work properly; otherwise the
  map behaves incorrectly.
- Handle kqueue errors if they are returned as an entry in the events table
  (with flags containing EV_ERROR).

While here, add more debugging code that helped me catch this issue (some
extra messages and assertions).

Also reenable assertions (except on Darwin as, according to version 1.14 of
the Makefile, they cause problems).

Not bumping revision because kqueue support is still off by default.
2005-01-05 16:21:06 +00:00
jmmv
1e0ea6fe2a Remove a memory leak that was supposed to fix a bug (but the bug is not
really there... i.e., me not reading the code properly).  Not bumping
revision since this affects the kqueue part only, which is not built by
default.
2004-10-19 17:00:56 +00:00
jmmv
665d71f190 Add kqueue support. This way, famd can be notified of changes to files and
directories in "real time", without having to periodically poll(2) for them
after several seconds.  This improves the responsiveness of applications
using famd (specially GNOME) when changes to files occur from the "outside"
(they are notified from changes immediately), or even from the application
itself (for example, have you ever tried to rename several files from
Nautilus?  just a PITA).

To enable kqueue, you have to pass the 'kqueue' option to the package.
I'm not enabling it by default because it needs testing (but it should be
enabled in a future).  Furthermore, I'd like to send these patches to the
FAM developers for comments too.  And a review from somebody knowing kqueue
could be good!  (this is the first time I use the kqueue interface, so I'm
not sure if everything is right).

A description on how this works can be found in the files/IMonKQueue.c++
file.  Note that, due to FAM's design, the easiest way to do this change
is to "emulate" imon functionality.

While here, add an rc.d script for famd, in case the user prefers to run
it at system startup instead of from inetd (I created it while developing
the kqueue functionality, so it's a good moment to add it).  Adjust the
MESSAGE accordingly.

Bump PKGREVISION to 4.
2004-10-17 19:20:53 +00:00