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

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

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to