public static bool GetInstance(out IFileWatcher watcher)
{
if (KeventWatcher.failed)
{
watcher = null;
return(false);
}
if (KeventWatcher.instance != null)
{
watcher = KeventWatcher.instance;
return(true);
}
KeventWatcher.watches = Hashtable.Synchronized(new Hashtable());
KeventWatcher.requests = Hashtable.Synchronized(new Hashtable());
KeventWatcher.conn = KeventWatcher.kqueue();
if (KeventWatcher.conn == -1)
{
KeventWatcher.failed = true;
watcher = null;
return(false);
}
KeventWatcher.instance = new KeventWatcher();
watcher = KeventWatcher.instance;
return(true);
}