D28043: [KDevelop] background parser job control (WIP)

René J.V. Bertin noreply at phabricator.kde.org
Sat Apr 11 16:20:59 BST 2020


rjvbb updated this revision to Diff 79868.
rjvbb added a comment.


  Updated and improved version:
  
  - the registration with the ProcessController is done "JIT", just before enqueing the first document for actual parsing
  - keep track of documents via the QUrls of IndexedStrings
  
  Both changes are necessary because the first set of documents to be parsed (= the documents restored on session launch?) may not actually get parsed (I see that with a session holding TCL-based projects), and that first set will not be deleted until the session exits. Then, BackgroundParser::documentClosed calls the proxy's unregisterUrl() method via a queued connection and those calls will be performed much later, after the Core cleanup handler has exitted. By then the IndexedString references are no longer safe to use, hence the need to store deep (QUrl) copies of them.
  Registering in JIT fashion with the ProcessController prevents a persistent job entry that I was seeing in sessions where none of the initial documents were actually parsed, and which caused instability if an attempt was made to cancel it via the ProcessController.

CHANGES SINCE LAST UPDATE
  https://phabricator.kde.org/D28043?vs=77846&id=79868

REVISION DETAIL
  https://phabricator.kde.org/D28043

AFFECTED FILES
  kdevplatform/language/backgroundparser/backgroundparser.cpp
  kdevplatform/language/backgroundparser/backgroundparser.h
  kdevplatform/language/backgroundparser/parseprojectjob.cpp

To: rjvbb, #kdevelop, aaronpuchert
Cc: kdevelop-devel, hmitonneau, christiant, glebaccon, domson, antismap, iodelay, alexeymin, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20200411/246ea682/attachment.html>


More information about the KDevelop-devel mailing list