Fall back to PollingDirectoryWatcher if FileSystemEntity:watch is not supported.
BUG=
R=rnystrom@google.com
Review URL: https://codereview.chromium.org//313743004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/watcher@37003 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkgs/watcher/lib/src/directory_watcher.dart b/pkgs/watcher/lib/src/directory_watcher.dart
index 27dbb3f..605eaea 100644
--- a/pkgs/watcher/lib/src/directory_watcher.dart
+++ b/pkgs/watcher/lib/src/directory_watcher.dart
@@ -55,9 +55,11 @@
/// and higher CPU usage. Defaults to one second. Ignored for non-polling
/// watchers.
factory DirectoryWatcher(String directory, {Duration pollingDelay}) {
- if (Platform.isLinux) return new LinuxDirectoryWatcher(directory);
- if (Platform.isMacOS) return new MacOSDirectoryWatcher(directory);
- if (Platform.isWindows) return new WindowsDirectoryWatcher(directory);
+ if (FileSystemEntity.isWatchSupported) {
+ if (Platform.isLinux) return new LinuxDirectoryWatcher(directory);
+ if (Platform.isMacOS) return new MacOSDirectoryWatcher(directory);
+ if (Platform.isWindows) return new WindowsDirectoryWatcher(directory);
+ }
return new PollingDirectoryWatcher(directory, pollingDelay: pollingDelay);
}
}