summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2014-12-01 09:10:43 +0100
committerJani Heikkinen <jani.heikkinen@theqtcompany.com>2014-12-01 20:03:42 +0100
commit03b5ecce4ab8dc879e27dc8f07d6f3ef846efde0 (patch)
treea5339f30a93619aeefd0abf6121bb18408dd412a /src/corelib/io
parenta2da88712f1e057747f68a28361b300faac5e605 (diff)
FSEvents file system watcher: Do not watch whole parent hierarchies.
Unfortunately the FSEvents implementation for watching parent hierarchies has the major flaw, that watching a path will then create watches for the whole parent hierarchy even if that hierarchy is already watched. Watching /A/B/C and /A/B/D will create two watches each for /A and /A/B. This leads to an explosion of open file handles. Luckily we do not need to watch the parent hierarchy since this is not a supported usecase of QFileSystemWatcher anyhow, so just don't do it. Task-number: QTCREATORBUG-13531 Change-Id: I9ecb5f08e4be35e4fbd58a7ca3155867fcb1589f Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'src/corelib/io')
-rw-r--r--src/corelib/io/qfilesystemwatcher_fsevents.mm3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/corelib/io/qfilesystemwatcher_fsevents.mm b/src/corelib/io/qfilesystemwatcher_fsevents.mm
index eebca1cfb0..90ef7a6336 100644
--- a/src/corelib/io/qfilesystemwatcher_fsevents.mm
+++ b/src/corelib/io/qfilesystemwatcher_fsevents.mm
@@ -518,7 +518,6 @@ bool QFseventsFileSystemWatcherEngine::startStream()
NULL
};
const CFAbsoluteTime latency = .5; // in seconds
- FSEventStreamCreateFlags flags = kFSEventStreamCreateFlagWatchRoot;
// Never start with kFSEventStreamEventIdSinceNow, because this will generate an invalid
// soft-assert in FSEventStreamFlushSync in CarbonCore when no event occurred.
@@ -530,7 +529,7 @@ bool QFseventsFileSystemWatcherEngine::startStream()
reinterpret_cast<CFArrayRef>(pathsToWatch),
lastReceivedEvent,
latency,
- flags);
+ FSEventStreamCreateFlags(0));
if (!stream) {
DEBUG() << "Failed to create stream!";