[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-panel-devel
Subject: kdreview: dictionary runner; changes needed to Plasma::RunnerManager?
From: "Aaron J. Seigo" <aseigo () kde ! org>
Date: 2010-08-24 20:59:23
Message-ID: 201008241359.32256.aseigo () kde ! org
[Download RAW message or body]
[Attachment #2 (multipart/signed)]
hi ...
looking at the dictionary runner, i've noticed a few things that should be
improved:
* when the teardown() signal is emitted, the runner should disconnect from the
DataEngine
but i've also come to a few concerning conclusions:
* a thread can wait indefinitely on m_wait.wait(&m_mutex);
* if the user types more than $THREAD_POOL_COUNT letters before the dict
engine returns, the thread pool will be filled with dictionary runner threads
and therefore be exhausted
looking at it further, it's evident that this runner is really working around
the fact that it is multithreaded; it would be far easier in this case to
simply make match() re-entrant and have just one thread of it around.
for such runners, i think it would make sense to allow for them to mark
themselves as re-entrant and then give them their own thread outside the
shared threadpool.
the nice thing about the current design is that match() methods do not need to
be made re-entrant, and this makes it simpler for many of the runners. but it
assumes that the runners exit quickly (freeing up the thread pool) and don't
rely on any resources that have a single-thread restriction on them (as is the
case with the dictionary plasmoid, among one or two others).
thoughts?
once we sort this part out, the i'd like to see the dictonary runner moved to
kdeplasma-addons/runners/
--
Aaron J. Seigo
humru othro a kohnu se
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
KDE core developer sponsored by Qt Development Frameworks
["signature.asc" (application/pgp-signature)]
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic