bool disposed;
string mangledFilter;
static IFileWatcher watcher;
- static object lockobj = new object ();
#endregion // Fields
void InitWatcher ()
{
- lock (lockobj) {
+ lock (typeof (FileSystemWatcher)) {
if (watcher != null)
return;
mode = InternalSupportsFSW ();
bool ok = false;
- switch (mode) {
- case 1: // windows
+ if (mode == 3)
+ ok = KeventWatcher.GetInstance (out watcher);
+ else if (mode == 2)
+ ok = FAMWatcher.GetInstance (out watcher);
+ else if (mode == 1)
ok = DefaultWatcher.GetInstance (out watcher);
//ok = WindowsWatcher.GetInstance (out watcher);
- break;
- case 2: // libfam
- ok = FAMWatcher.GetInstance (out watcher, false);
- break;
- case 3: // kevent
- ok = KeventWatcher.GetInstance (out watcher);
- break;
- case 4: // libgamin
- ok = FAMWatcher.GetInstance (out watcher, true);
- break;
- }
if (mode == 0 || !ok)
DefaultWatcher.GetInstance (out watcher);