<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Thu, Aug 1, 2013 at 12:25 AM, Milian Wolff <span dir="ltr"><<a href="mailto:mail@milianw.de" target="_blank">mail@milianw.de</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">On Wednesday 31 July 2013 20:51:11 Mark wrote:<br>


> Hi,<br>
><br>
> I'm horrible in clearly explaining issues and i'm going to explain a<br>
> lot in this mail. Please read it very carefully.<br>
<br>
</div><snip><br>
<div class="im"><br>
> Subsequent signals (even create, delete or anything besides dirty) is<br>
> following this same path where the emit is being triggered from<br>
> KDirWatchPrivate::slotRescan in the above mentioned snippet. All<br>
> signals are thus being send as dirty signals! For more clarity, this<br>
> is what KDirLister(Cache) actually receives (in<br>
> KDirListerCache::slotFileDirty) as signals for the same folder:<br>
> (DIRTY signal) /home/mark/massive_files<br>
> (DIRTY signal) /home/mark/massive_files/.directory.lock<br>
> (DIRTY signal) /home/mark/massive_files/.directorym13357.new<br>
> (DIRTY signal) /home/mark/massive_files (yes, it starts with this and<br>
> ends with this)<br>
><br>
> Now i'm guessing this isn't right. All dirty signals of which two(!!)<br>
> are my main folder.<br>
<br>
</div>Besides that it's two times that signal, imo this is what should be done.<br>
Creating/Removing a file makes its parent folder dirty.<br>
<br></blockquote><div>If that needs to happen then there is no change needed since that is currently happening which i think is a bug.</div><div>If there is no way to detect which files inside a directory have been created/added/modified then it indeed is best to just mark the whole directory as dirty thus cause a complete re-scan. That is what happens now.</div>

<div><br></div><div>However, we have been given the power of inotify which gives more detailed signals and lets us know which files have been created/added/modified which we should be used imho.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


Maybe KDirListerCache should not listen on dirty but rather on created and<br>
deleted instead, which should come with the semantics you describe?<br></blockquote><div><br></div><div>The dirty signal handling is not wrong, the signals it gets are. it's receiving a signal to many that already causes a full re-scan. It would probably be fine if it just received the signals that inotify is broadcasting:</div>

<div><br></div><div><span style="font-family:arial,sans-serif;font-size:13px">(CREATE signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directory.lock</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(MODIFY signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directory.lock</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(CREATE signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directoryc13357.new</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(MODIFY signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directoryc13357.new</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(DELETE signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directoryc13357.new</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(CREATE signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directory</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">(DELETE signal) /home/mark/massive_folder/.</span><span style="font-family:arial,sans-serif;font-size:13px">directory.lock</span><br style="font-family:arial,sans-serif;font-size:13px">

</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<br>
Bye<br>
<span class=""><font color="#888888">--<br>
Milian Wolff<br>
<a href="mailto:mail@milianw.de">mail@milianw.de</a><br>
<a href="http://milianw.de" target="_blank">http://milianw.de</a><br>
</font></span></blockquote></div><br></div></div>