Review Request 118614: Make KIO thread-safe

Aleix Pol Gonzalez aleixpol at kde.org
Sat Jun 14 09:52:33 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118614/#review60074
-----------------------------------------------------------

Ship it!


Despite my lack of knowledge on the code, it makes sens to me.

I'd like to see it in, this way we don't need to do weird things to use KIO from QtQuick, for starters.

- Aleix Pol Gonzalez


On June 8, 2014, 10:11 a.m., David Faure wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/118614/
> -----------------------------------------------------------
> 
> (Updated June 8, 2014, 10:11 a.m.)
> 
> 
> Review request for KDE Frameworks, Aleix Pol Gonzalez and Thiago Macieira.
> 
> 
> Repository: kio
> 
> 
> Description
> -------
> 
> Unittest for kiocore's thread-safety
> 
> 
> KIO thread safety: use one DBus connection per thread
> 
> 
> KIO thread safety: don't use static buffers.
> 
> They obviously lead to data races between threads.
> 
> KIO: create one instance of Scheduler per thread.
> 
> 
> Diffs
> -----
> 
>   src/core/scheduler.cpp e762e369b8d74971831dc1e9f4d083bfd77b8e30 
>   src/core/connectionbackend.cpp 532141af5ab7676d1287379e56ff48bd7fa10c37 
>   autotests/threadtest.cpp PRE-CREATION 
>   autotests/CMakeLists.txt 81d261b8620e0a0512a5bc021ed189e910c0922a 
> 
> Diff: https://git.reviewboard.kde.org/r/118614/diff/
> 
> 
> Testing
> -------
> 
> helgrind'ing the unittest.
> 
> I found and fixed many races within Qt by doing that...
> Race on QMutex::id --> https://codereview.qt-project.org/86237
> Race in QThreadStorage --> https://codereview.qt-project.org/87047
> Race in QLoggingCategory --> https://codereview.qt-project.org/87054
> 
> Also reported QTBUG-39528 (QDBusConnection::sessionBus race)  (but we have KDBusConnectionPool for that)
> 
> And there are still more races in Qt: 
> QMutex::isRecursive, qdbus_loadLibDBus, QDBusConnectionPrivate::connectSignal, qt_message_print....
> 
> And a few in our code:
> the getenv(KDE_FORK_SLAVES) in KIO, and the dbus interface for klauncher in KDEInitInterface::ensureKdeinitRunning.
> 
> 
> Thanks,
> 
> David Faure
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20140614/a150dc97/attachment.html>


More information about the Kde-frameworks-devel mailing list