Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#10 Use monitoring from gnome-vfs instead of polling

closed
nobody
None
5
2004-10-23
2004-08-07
Henryk Plötz
No

Gnome-vfs provides support for file and directory
monitoring without any polling, see
http://developer.gnome.org/doc/API/2.0/gnome-vfs-2.0/gnome-vfs-20-gnome-vfs-monitor.html

This would be applicable to all local protocols (file,
mh and maildir) and give instantaneous updates (which
is even faster than the 1 second requested in 900371)
without any system load.

Discussion

  • Logged In: YES
    user_id=148212

    I'm not sure there is no system load.
    Unless there exists such a thing as a "file change" signal
    emitted from the kernel, I don't really see how gnome-vfs
    can implement such a thing without regular checking, which
    is basically the same as what gnubiff is doing.
    Furthemore, since gnubiff can also be compiled (and it is)
    without gnome support, I cannot use gnome-vfs for protocols.

     
  • Henryk Plötz
    Henryk Plötz
    2004-09-05

    Logged In: YES
    user_id=127519

    Well yes, that's the whole idea: Never poll. (BTW: Polling
    is not exactly a technique of the 21th century.)

    gnome-vfs does this via fam, which uses a kernel interface
    where available (IMon or DNotify, available on Irix and
    pretty much every Linux), goes through a remote famd in case
    of NFS mounts or polls if all else fails.

    I agree that the gnome documentation is a bit short on that
    issue, there is a much better one on fam at
    http://oss.sgi.com/projects/fam/

    But nevermind, I just found
    http://www.nongnu.org/mailnotify/ which does almost
    everything I want from a biff tool and does not poll.

     
  • Logged In: YES
    user_id=148212

    I used directly the File Alteration Monitor and it seems to
    be working ok so far. This will be available in the next
    major release of gnubiff.

     
    • status: open --> closed