> On Dec. 1, 2012, 12:03 a.m., Vishesh Handa wrote: > > services/filewatch/kinotify.cpp, line 203 > > <http://git.reviewboard.kde.org/r/107529/diff/1/?file=96932#file96932line203> > > > > "Simeon: This should be easily fixed though. Just call FilterWatch in > > _k_add_Watches and only add the new iterator if it returns true." > > > > With a dir tree of > > > > dir/sub > > dir2 > > > > If dir is filtered, then addWatch( .. ) will return false and watches > > will not be added for their subdirectories. > > > > Or am I missing something? It's 5:30 am in the morning.
No, at the moment addWatch returns true unless there is an error: look at line 111 of kinotify. Actually, the more I think about that, the more it makes no sense! I guess I did it, but I can't remember why. Maybe just change line 111 to "return false;"? Then addWatch will return false if dir is filtered. - Simeon ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://git.reviewboard.kde.org/r/107529/#review22851 ----------------------------------------------------------- On Nov. 30, 2012, 7:34 a.m., Vishesh Handa wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > http://git.reviewboard.kde.org/r/107529/ > ----------------------------------------------------------- > > (Updated Nov. 30, 2012, 7:34 a.m.) > > > Review request for Nepomuk, Sebastian Trueg and Simeon Bird. > > > Description > ------- > > FileWatch: Avoid calling the addWatch function recursively > > A watch needs to be added for each directory. If we try to add the > watches recursively, then at each level a new string is allocated which > consumes memory. This memory is eventually freed, but that doesn't > decrease the filewatch service's memory footprint. > > Additionally, this extra memory can be quite large depending on how your > directory is structed. For me it makes a memory difference of about > 50mb, but bug reports indicate that it can go as high as 2gb. > > _k_addWatches() now only adds one watch and then calls itself. It > additionally traverses the file system tree in a depth first manner in > order to avoid extra memory allocations. (Breadth first costs more > memory) > > BUG: 310556 > > > This addresses bug 310556. > http://bugs.kde.org/show_bug.cgi?id=310556 > > > Diffs > ----- > > services/filewatch/kinotify.cpp e540f76 > > Diff: http://git.reviewboard.kde.org/r/107529/diff/ > > > Testing > ------- > > Memory footprint reduced from 65 to 17mb. > > > Thanks, > > Vishesh Handa > >
_______________________________________________ Nepomuk mailing list [email protected] https://mail.kde.org/mailman/listinfo/nepomuk
