]> granicus.if.org Git - icu/commit
ICU-20488 mutex static constructor fixes.
authorAndy Heninger <andy.heninger@gmail.com>
Mon, 11 Mar 2019 23:36:33 +0000 (16:36 -0700)
committerAndy Heninger <andy.heninger@gmail.com>
Tue, 12 Mar 2019 16:52:16 +0000 (09:52 -0700)
commitbc4bb89af274f17ef28ec7bccd4c25c696120d6a
treee67b944b46f1924e1007d27f2edfccc9592d3c43
parentffd8baf16dbd1667a355c309d0533b2c526be967
ICU-20488 mutex static constructor fixes.

Remove the dependencies from the ICU library code on static constructors
that were introduced by using std::mutex and condition variables. The
mutexes are lazily initialized by embedding them as local static variables
in getter functions, and relying on the C++ compiler/runtime to do thread
safe initialization of them.
38 files changed:
icu4c/source/common/brkeng.cpp
icu4c/source/common/characterproperties.cpp
icu4c/source/common/locdspnm.cpp
icu4c/source/common/locid.cpp
icu4c/source/common/putil.cpp
icu4c/source/common/resbund.cpp
icu4c/source/common/serv.cpp
icu4c/source/common/servls.cpp
icu4c/source/common/servnotf.cpp
icu4c/source/common/ucnv_bld.cpp
icu4c/source/common/ucurr.cpp
icu4c/source/common/umutex.cpp
icu4c/source/common/unifiedcache.cpp
icu4c/source/common/uresbund.cpp
icu4c/source/common/usprep.cpp
icu4c/source/i18n/astro.cpp
icu4c/source/i18n/chnsecal.cpp
icu4c/source/i18n/dtfmtsym.cpp
icu4c/source/i18n/dtitvfmt.cpp
icu4c/source/i18n/gender.cpp
icu4c/source/i18n/islamcal.cpp
icu4c/source/i18n/listformatter.cpp
icu4c/source/i18n/numfmt.cpp
icu4c/source/i18n/rbt.cpp
icu4c/source/i18n/rbtz.cpp
icu4c/source/i18n/reldatefmt.cpp
icu4c/source/i18n/simpletz.cpp
icu4c/source/i18n/smpdtfmt.cpp
icu4c/source/i18n/translit.cpp
icu4c/source/i18n/tridpars.cpp
icu4c/source/i18n/tzfmt.cpp
icu4c/source/i18n/tzgnames.cpp
icu4c/source/i18n/tznames.cpp
icu4c/source/i18n/tznames_impl.cpp
icu4c/source/i18n/zonemeta.cpp
icu4c/source/io/locbund.cpp
icu4c/source/test/intltest/intltest.cpp
icu4c/source/test/intltest/tsmthred.cpp