• Milian Wolff's avatar
    Don't crash when background listing outlasts file manager list job · a0fd2014
    Milian Wolff authored
    When the QDir listing in the background thread takes a long time,
    e.g. by artificially introducing a sleep statement therein, then
    it can happen that the FileManagerListJob gets destroyed before
    the background task finishes. If that happens, then we used to
    access the dangling this pointer to access m_aborted or to invoke
    the handleResults method, both of which are undefined behavior.
    The latter usually crashes.
    
    Prevent this from happening by introducing a mutex that gets locked
    while we are running a background task and during destruction of
    the list job. This synchronizes the two tasks and prevents the
    crash from happening.
    a0fd2014
Name
Last commit
Last update
app Loading commit data...
app_templates Loading commit data...
appimage Loading commit data...
cmake/modules Loading commit data...
doc Loading commit data...
file_templates Loading commit data...
kdevplatform Loading commit data...
pics Loading commit data...
plugins Loading commit data...
release-scripts Loading commit data...
shortcuts Loading commit data...
.arcconfig Loading commit data...
.clang-format Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.kateconfig Loading commit data...
.kateproject Loading commit data...
.krazy Loading commit data...
AUTHORS Loading commit data...
CMakeLists.txt Loading commit data...
COPYING Loading commit data...
COPYING.DOC Loading commit data...
COPYING.LIB Loading commit data...
CTestConfig.cmake Loading commit data...
CTestCustom.cmake Loading commit data...
Doxyfile Loading commit data...
ExtraDesktop.sh Loading commit data...
INSTALL Loading commit data...
KDevelopConfig.cmake.in Loading commit data...
README.md Loading commit data...
config-kdevelop.h.cmake Loading commit data...
format.config.uncrustify Loading commit data...
format_sources Loading commit data...
kdevelop.kdev4 Loading commit data...
kdevelop_bash_completion Loading commit data...
org.kde.kdevelop.appdata.xml Loading commit data...