Go to file
Edward Welbourne 0180a1ab82 Make QCalendar's backend registration reentrant-safe
Previously, different threads instantiating the same back-end could
collide in the register, with various unwelcome results.

Give Registry an atomic status flag to track whether it has been
populated or is being destroyed; and protect it with a mutex to ensure
distinct threads do not collide during registration or attempt to
register while the registry is being destroyed.

Document the correct way to instantiate custom backends, and that no
code other than the QCalendar implementation should instantiate the
built-in ones. Instantiators that follow these rules should be safe
from failed registrations, provided they don't pick a name that
conflicts with some other backend. They can also use the recent change
to semantics of registerAlias() to verify that registration *has*
succeeded.

Done-with: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Pick-to: 6.0 5.15
Task-number: QTBUG-88815
Task-number: QTBUG-85692
Fixes: QTBUG-84575
Change-Id: Ie78e700e71d610454152c05cafb38f6f713649ad
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-01-25 18:04:36 +01:00
.github/workflows Github Actions: many minor updates 2021-01-22 18:48:54 +01:00
bin CMake: Mark qt-cmake-standalone-test as an executable on Unix 2020-12-04 11:22:38 +01:00
cmake Fix QMAKE_PRL_LIBS entries on Windows for modules from other repos 2021-01-22 18:24:06 +00:00
coin Add QNX7.1 to CI 2021-01-19 15:17:55 +02:00
config.tests Remove the qmake project files 2021-01-07 15:32:28 +01:00
dist Add Qt 6.0.0 changes file 2020-11-16 10:02:08 +02:00
doc Doc: Add partial documentation for CMake API (tech preview) 2021-01-11 16:58:28 +11:00
examples Remove QtDBus includes 2021-01-12 09:19:27 +01:00
lib
mkspecs macOS: Only check SDK major version for compatibility 2021-01-20 19:11:05 +01:00
qmake If available, use a version-specific qt<major-version>.conf 2021-01-14 23:30:47 +01:00
src Make QCalendar's backend registration reentrant-safe 2021-01-25 18:04:36 +01:00
tests dbus: Fix missing QVersionNumber include 2021-01-25 12:09:17 +01:00
util Eliminate the need to preprocess the public suffix list 2021-01-25 18:03:00 +01:00
.cmake.conf Lower the CMake minimum required version for single-config builds 2021-01-14 17:00:55 +01:00
.gitattributes Give batch files CRLF line endings 2020-11-04 15:02:29 +00:00
.gitignore .gitignore: Qt Creator files cleanup 2020-09-25 07:50:15 +02:00
.lgtm.yml Skip LGTM analysis for the bootstrap library and tools 2020-07-16 01:04:34 +02:00
.prev_configure.cmake CMake: Add --enable-new-dtags flag support 2020-12-22 10:28:34 +00:00
.prev_qt_cmdline.cmake CMake: Regenerate configure.cmake files 2020-09-28 15:48:17 +02:00
.qmake.conf Bump version 2020-12-15 15:54:46 +01:00
.tag
CMakeLists.txt CMake: Bail out if the build dir is symlinked 2020-12-21 13:22:26 +01:00
config_help.txt Doc: Add -qt-host-path to configure's help screen 2020-12-07 15:26:11 +01:00
configure Remove qmake-related code from configure 2020-12-21 10:33:33 +01:00
configure.bat Remove qmake-related code from configure 2020-12-21 10:33:33 +01:00
configure.cmake CMake: Add --enable-new-dtags flag support 2020-12-22 10:28:34 +00:00
configure.json macOS: Don't hard-code x86_64 as the architecture when using qmake 2020-12-07 15:35:55 +01:00
dependencies.yaml Re-add dependencies.yaml now that qt5.git wip/qt6 builds fine 2019-09-18 13:19:31 +02:00
INSTALL
LICENSE.FDL
LICENSE.GPL2
LICENSE.GPL3
LICENSE.GPL3-EXCEPT
LICENSE.LGPL3
LICENSE.LGPLv3
LICENSE.QT-LICENSE-AGREEMENT Update enterprise license agreement v4.2.1 2019-12-18 13:07:19 +02:00
qt_cmdline.cmake CMake: Add extra targets to run single benchmark using CMake generator 2020-12-07 14:26:07 +00:00
sync.profile Generate QUtf8StringView header file from qutf8stringview.h 2020-11-07 08:35:11 +00:00