gamin 0.1.7
Jean-Yves Lefort
jylefort at FreeBSD.org
Thu Feb 9 07:26:36 PST 2006
On Thu, 09 Feb 2006 15:43:29 +0100
Alex Dupre <ale at FreeBSD.org> wrote:
> > Please address the following issues, or revert:
> >
> > - we now have two different pollers; one is used when
> > gam_kqueue_monitor_enable_kqueue() returns FALSE (for instance when
> > the fd limit is exhausted, or when kevent() fails); one is used for
> > "nfs" and "smbfs" filesystems
>
> Yes, and where is the problem? Not only for nfs and smbfs, but also for
> all the filesystem the user want to monitor using polling, by inserting
> them into the configuration file. Before, this wasn't possible. The
> internal polling of kqueue backend will be used only for files that
> could be monitored by the kernel, but actually exceeds the fd limit (and
> so they could return to kernel later).
The problem is that the two pollers behave differently.
> > - the two pollers behave differently, compare: stat() vs lstat(),
> > gam_poll_generic_node_changed() vs gam_kqueue_differs(),
>
> Yes, this is true. For POLA may be better to adapt the polling behaviour
> to be like the kqueue backend, even if other gamin backend are different.
I don't want to use their poller. If you want to force polling for
remote filesystems, you must do it in
gam_kqueue_monitor_enable_kqueue() (return FALSE and the kqueue poller
will be used).
> > - using filesystem names to choose between kqueue and polling is a
> > bad idea, for obvious reasons;
>
> This is what is done partially in FAM and other gamin backends.
>
> > one should use fstatfs() and enable kqueue if the MNT_LOCAL flag is set
>
> Before, all the file systems where monitored by kqueue, so I don't see
> your point.
My point is that it's better to ask the system if a filesystem is
remote rather than hardwiring a few known remote filesystem names.
> > - testing no longer works:
> > make
> > cd $WRKDIR/tests
> > export GAMIN_DEBUG_SERVER=../server/gam_server
> > ./testgam -
> > connect test
> > -> it connects to the already running gam_server (the installed one)
>
> If you have an already running gam_server it's absolutely right that the
> libgamin will connect to it. Your env variable is used only when forking
> a new server.
Before it forked the executable specified in GAMIN_DEBUG_SERVER rather
than using the already running gam_server, so I could test the backend
without disrupting my GNOME session. I want that behaviour to be
restored.
> > - the patch which removed a stale socket has been dropped
>
> False, the patch has changed, not dropped.
The bind() call in gam_listen_unix_socket() fails if the file already
exists. My patch addressed that issued by unlinking the already
existing file.
--
Jean-Yves Lefort
jylefort at FreeBSD.org
http://lefort.be.eu.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20060209/d4b07901/attachment.bin
More information about the freebsd-ports
mailing list