[Differential] [Request, 196 lines] D4618: Fix ItemRetriever in case of concurrent requests for the same item(s)
David Faure
noreply at phabricator.kde.org
Wed Feb 15 07:46:32 GMT 2017
dfaure created this revision.
dfaure added a reviewer: dvratil.
dfaure added a subscriber: KDE PIM.
Restricted Application added a project: KDE PIM.
REVISION SUMMARY
- ItemRetrievalManager must emit requestFinished() for those other requests,
otherwise the list of pending requests in ItemRetriever is never emptied
- ItemRetriever must not assume that a signal being emitted by
ItemRetrievalManager is necessarily about the request it's waiting for, it
could be for another one. So it must first check in its list of pending
requests to determine whether it should react or not.
With multithreaded unittest, checked for races with clang+tsan.
(There is one race, the connect to ItemRetrievalRequest vs the emit
in other threads, we should lock mLock before connect...)
TEST PLAN
new unittest
REPOSITORY
R165 Akonadi
BRANCH
Applications/16.12
REVISION DETAIL
https://phabricator.kde.org/D4618
AFFECTED FILES
autotests/server/itemretrievertest.cpp
src/server/storage/itemretrievalmanager.cpp
src/server/storage/itemretriever.cpp
EMAIL PREFERENCES
https://phabricator.kde.org/settings/panel/emailpreferences/
To: dfaure, dvratil
Cc: #kde_pim, dvasin, winterz, vkrause, mlaurent, knauss, dvratil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20170215/676b449e/attachment.html>
More information about the kde-pim
mailing list