[Bsd-sharp-list] FileWatcher's

Phillip Neumann pneumann at gmail.com
Tue Sep 11 19:37:32 MDT 2007


Dear list,

You may notice, we have mono 1.2.5 in the bsd# repo.
Please test it! :)


I wonder about FileSystemWatchers

The default mono behaviour for watching a target directory is:
  1.- If KQUEUE is present then use it.
  2.- If gamin or fam is present, then use it.
  3.- else use mono own implementation.

patch-mono_metadata_filewatcher.c changes this, making gamin the first choice.

As far as i can test on AMD64 on RELENG_6, KQUEUE does not work.
It does work fine on i386 tho.

When kqueue is used, then mono on amd64 will not raise any events, so
watchers becomes useless.
Gamin and managed implementation does work right on both platforms

Can you confirm the when using KQUEUE on AMD64, mono becomes blind?
Would you know how to make it work correctly?

There is an oldie bug related to this, that Tom reported in 2005:
http://bugzilla.ximian.com/show_bug.cgi?id=75113
(im using the attached file there to test things)
That bug states that the Change event is missing, wich is no longer true

As far as i can see, gamin is patched to use KQUEUE anyway. So we
could bypass the problem by make mono depend on it, on amd64. But its
not the idea..

How could we debug this?
Can anyone test this on -CURRENT on AMD64?

Im not sure where the problem lies.. on freebsd, freebsd-stable, mono,
or if im just imaginating all this...


Some tips:
* setting MONO_LOG_LEVEL=info before running mono <file.exe>, will
make mono show what is it using, kevent/kqueue, FAM, or nothing of
boths when using its own implementation
* MONO_MANAGED_WATCHER=1 will force mono to choose own implementation
* To make it use gamin, just install gamin. It will use it.



Thanks in advance!!
-- 


__________________
Phillip Neumann
pneumann at gmail.com


More information about the Bsd-sharp-list mailing list