dfaure requested changes to this revision.
dfaure added inline comments.
This revision now requires changes to proceed.
INLINE COMMENTS
> kdynamicjobtracker.cpp:165
> if (kuiserverTracker) {
> kuiserverTracker->unregisterJob(job);
> }
This would fail if the registerJob didn't happen yet.
Imagine a very short lived job (or a very slow kuiserver).
- register -> waiting for reply on requiresJobTracker
- unregister -> calling unregisterJob immediately, kuiserver will ignore it
- reply comes in, lambda calls registerJob
(note that the job is deleted with deleteLater, so the QPointer check doesn't
help)
Result: the job stays up forever in kuiserver
Making things async means queueing requests, and having a sort of state
machinne...
REPOSITORY
R241 KIO
REVISION DETAIL
https://phabricator.kde.org/D21127
To: broulik, #frameworks, dfaure, davidedmundson
Cc: kde-frameworks-devel, michaelh, ngraham, bruns