Go to file
Erik Verbruggen 6533d1a473 Fix race in QFseventsFileSystemWatcher destructor
The race goes like this:
1) We destruct QFseventsFileSystemWatcher, which calls FSEventStreamStop
   and FSEventStreamInvalidate/FSEventStreamRelease
2) The FSEvent* calls will happen on the same thread as the destructor
   is being called on, which will be different to the thread that the
   FSEvent* events are popping out on.
3) So, there could be a case where we are in the middle of processing an
   event, but the QFseventsFileSystemWatcher has already died.

The fix is to dispatch the stop/invalidate/release on the queue
associated with the stream.

Patch by Matt Galloway!

Fixes: QTBUG-85594
Pick-to: 5.15 5.12
Change-Id: Ie168bbe91e55c5559632b37bc008e11597e4fdaf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-24 09:47:57 +00:00
.github/workflows Update configure flags to the last fixes 2020-06-30 15:21:32 +02:00
bin Add OS-specific prelude to qt-cmake-standalone-test 2020-07-15 15:13:05 +00:00
cmake Avoid enabling of "warnings_are_errors" flags for tests 2020-07-23 15:37:48 +03:00
coin CMake: Propagate non-qtbase configure args to other repositories 2020-07-13 21:01:59 +02:00
config.tests CMake: Skip regeneration of manual compile test project 2020-04-09 11:26:46 +02:00
dist Remove last remainings of Qt Quick 1 imports 2020-05-25 11:48:12 +02:00
doc Fix return of uninitialized pointer in guiloader example 2020-07-16 21:52:26 +02:00
examples Deprecate QTimeLine's curveShape in favor of its easingCurve 2020-07-16 17:39:11 +02:00
lib Purge all fonts 2015-08-18 19:59:14 +00:00
mkspecs testlib selftest: Don't pass TESTARGS to Catch2 2020-07-23 11:08:15 +02:00
qmake iOS: Add a variable to customize where the launch image is taken from 2020-07-22 00:42:36 +02:00
src Fix race in QFseventsFileSystemWatcher destructor 2020-07-24 09:47:57 +00:00
tests Fix buffer overflow in XBM parser 2020-07-24 10:06:57 +02:00
util Remove reference to removed module 2020-07-23 10:18:13 +02:00
.cmake.conf pro2cmake.py: Generate .cmake.conf files for versioning 2020-04-30 17:44:03 +00:00
.gitattributes Update the git-archive export options 2012-09-07 15:39:31 +02:00
.gitignore Move QTextCodec support out of QtCore 2020-06-20 02:04:38 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.qmake.conf Bump version 2019-12-17 12:41:31 +01:00
.tag Update the git-archive export options 2012-09-07 15:39:31 +02:00
CMakeLists.txt CMake: Protect against Qt toolchain file recursive inclusion 2020-06-04 23:21:27 +02:00
config_help.txt Make -qtlibinfix affect the names of plugins by default 2020-07-13 20:30:18 +02:00
configure CMake: Fix top-level configure 2020-07-16 15:00:37 +02:00
configure.bat CMake: Fix top-level configure 2020-07-16 15:00:37 +02:00
configure.cmake Make -qtlibinfix affect the names of plugins by default 2020-07-13 20:30:18 +02:00
configure.json Make -qtlibinfix affect the names of plugins by default 2020-07-13 20:30:18 +02:00
configure.pri Treat -xplatform or -device-option as being a cross compilation 2020-07-08 19:18:09 +02:00
dependencies.yaml Re-add dependencies.yaml so repos outside qt5 can be built with Coin 2019-09-19 17:07:36 +00:00
header.BSD Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.FDL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.GPL-EXCEPT Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL3-COMM Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-NOGPL2 Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.LGPL-ONLY Use placeholder for year in header.* files 2018-04-16 11:02:22 +00:00
header.MIT qsimd: add support for new x86 CPU features 2018-05-05 06:20:07 +00:00
INSTALL INSTALL: Remove outdated reference to Windows CE 2019-02-13 13:01:57 +00:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.GPL2 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.GPL3-EXCEPT Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPL3 Add new license header templates and license files 2016-01-14 20:43:46 +00:00
LICENSE.LGPLv3 Remove LICENSE.GPLv3, LICENSE.LGPLv21, LGPL_EXCEPTION.txt 2018-04-16 11:02:14 +00:00
LICENSE.QT-LICENSE-AGREEMENT Update enterprise license agreement v4.2.1 2019-12-18 13:07:19 +02:00
qtbase.pro nuke configure -host-option 2016-12-13 18:55:59 +00:00
sync.profile Move UNIX themes into QtGui 2020-06-22 09:12:14 +02:00