D22723: Fix RunnerManager::queryFinished()
David Edmundson
noreply at phabricator.kde.org
Tue Jul 30 18:53:45 BST 2019
davidedmundson added a comment.
> Correctly as in "it's supposed to work" yes, but it's not as it was intended to be AFAICT.
I've been going over ThreadWeaver.
The "decorator" is more of a wrapper, from what I can tell of ThreadWeaver we know the wrapper finishes, we know our wrapped object has finished.
I don't think ThreadWeaver API needs fixing. Merely Krunner's usage.
If we're using the QObjectDecorator pattern, RunnerManager is definitely meant to be starting the decorator and watching the wrapper not starting the underlying job.
That part is how it's meant to be.
-----
@fvogt's new version
Avoiding the relevant ThreadWeaver API is an equally a viable solution.
> Or the job has to be moved to a different thread, which means that Qt makes the connection a queued one automatically.
The job's thread is irrelevant.
In evaluating AutoConnection Qt uses the current thread emitting the signal and the thread of the receiver, which in this case RunnerManager in the main thread. AutoConnect should be fine.
-----
IMHO the "most correct" approach would be for RunnerManager to not have the pointless QSets about that shadow the data the Queue already has.
Once we get there the QObjectDecorator object could be created purely within RunnerManager::startJob and ignored from there on.
-------
Both look fine to me, I would happily accept either.
I don't want us to get blocked forever choosing which of two perfectly good options is the best.
If I did have to choose, I'd say I prefer Fabian's.
REPOSITORY
R308 KRunner
REVISION DETAIL
https://phabricator.kde.org/D22723
To: apol, #frameworks, fvogt, davidedmundson
Cc: aacid, kde-frameworks-devel, LeGast00n, sbergeron, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190730/47b89137/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list