objective-cfsevents

FSEvents: kFSEventStreamCreateFlagWatchRoot flag: not getting 'root rename' events


I'm creating FSEvents stream and passing the kFSEventStreamCreateFlagWatchRoot flag. From Apple's documentation:

kFSEventStreamCreateFlagWatchRoot : Request notifications of changes along the path to the path(s) you're watching. For example, with this flag, if you watch "/foo/bar" and it is renamed to "/foo/bar.old", you would receive a RootChanged event. The same is true if the directory "/foo" were renamed. The event you receive is a special event: the path for the event is the original path you specified, the flag kFSEventStreamEventFlagRootChanged is set and event ID is zero.

So when "/foo/bar" renamed to "/foo/bar.old" I'm getting the event as expected. But when "/foo" directory is renamed, I'm not getting the event as I should've. What might be a possible reason?


Solution

  • This is a known "FSEvents" bug in OS X: http://www.openradar.me/8342264