[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