<div class="gmail_quote"><div></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
> 2) Looking at contextbrowser plugin source code, it seems that I must<br>
> always use IndexedDeclaration<br>
> instead of Declaration for those data which are going to be used across<br>
> DU-Chain locks and probably defined as member attributes. Is this correct ?<br>
> If yes, I still need to check if IndexedDeclaration::data() return a<br>
> non-zero declaration, right ?<br>
<br>
</div>I think that it makes sense in this area of usage. It's not slow if the<br>
declaration is still in memory. If it's not, it's tried to load it from disk.<br>
But since anything could have happened in the meantime, e.g. the declaration<br>
could have been removed, you still have to check whether the data is still<br>
valid.<br>
<div class="im"><br></div></blockquote><div><br>Ok, updating plugin to use Indexed*.<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">


<div class="im"><br>
> 6) If I select a new symbol while collecting uses, apparently the collect<br>
> is paused and resumed from the last point if first symbol is selected<br>
> again. The pause point can be restored from m_waitForUpdate and<br>
> m_updateReady QSets in UsesCollector, but the question is: are the<br>
> remaining updateContextForUrl calls cancelled when a new symbol is<br>
> selected ? Or do they run to completion ?<br>
<br>
</div>They probably run until completion. Just a guess though. But I mean you don't<br>
have any API to abortJobForUrl or anything like that. And it shouldn't matter<br>
that much, since most of the time you'll switch symbols in a single context.<br>
If you jump to another context, it will get reparsed anyways for the editor,<br>
and there'll be only one job for that in the BackgroundParser.<br>
<br></blockquote><div><br>I think in controlflowgraph plugin we have a slightly different requirement because<br>I need to collect all uses of the current symbol and that likely spans to several<br>(including not-in-editor) files.<br>

 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Did you experience problems where too many (obsolete) jobs are still running?<br>
I never encountered that problem (at least not knowingly).<br></blockquote><div><br>Yes, as I generate a new graph (including uses - incoming arcs) whenever cursor enters a<br>new definition/declaration there could be too much obsolete jobs if user do it in a higher frequency.<br>

It would be like calling "Show uses" from contextbrowser several times.<br><br>For contextbrowser that wouldn't be so injurious because just signal processing would be required.<br>In controlflowgraph plugin the control flow generation (outcome arcs) is performed in background<br>

so I wouldn't like to spawn inadvertently too many threads.<br><br>One possible solution might be to disable automatic generation for graphs using more than two or three<br>call levels. Any suggestion ?<br><br>Thanks,<br>

Sandro<br><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Bye<br>
<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><br>--<br>
KDevelop-devel mailing list<br>
<a href="mailto:KDevelop-devel@kdevelop.org">KDevelop-devel@kdevelop.org</a><br>
<a href="https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel" target="_blank">https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel</a><br>
<br></blockquote>><br></div><br>