[System.IO] Phase 2 of revamping KeventWatcher (FileSystemWatcher implementation...
authorAlexis Christoforides <alexis@thenull.net>
Thu, 9 Oct 2014 05:16:40 +0000 (22:16 -0700)
committerAlexis Christoforides <alexis@thenull.net>
Tue, 28 Oct 2014 01:20:16 +0000 (21:20 -0400)
commit717c6de1cc49dabb2ecaa2a844a8b2b162c21440
treec1f6374517b9881c2890ee87e4cda644c592abe6
parent13fd028ee87066b157b66904f8cc7ee8d8cf7181
[System.IO] Phase 2 of revamping KeventWatcher (FileSystemWatcher implementation for OS X/kqueue). Dozens of bugs and reliability issues fixed.

FileSystemWatcher.cs: Fixed multicast events.
SearchPattern.cs :  Fixed issue where case insensitivity was not being honored.
KeventWatcher.cs:
* Fixed several race conditions
* Fixed file descriptor duplication & leaks
* thread-safe/cleaner state transitions for watcher, and much cleaner stopping
* Now uses fsw.Filter parameter and respects IncludeSubdirectories = false. Use fsw.Filter to watch very large trees
* Added more error handling + OnError event
* Lots of behavior/reliability fixes and optimizations for Monitor() loop
* Fixed kevent/timespec struct definitions (for 64-bit build)
mcs/class/System/System.IO/FileSystemWatcher.cs
mcs/class/System/System.IO/KeventWatcher.cs
mcs/class/System/System.IO/SearchPattern.cs