Commit Graph

28 Commits

Author SHA1 Message Date
Markus Scherer
e5381c956b ICU-20845 UMutex not trivially but constexpr constructible 2019-10-02 11:00:19 -07:00
Filip Filmar
0a01b29005 ICU-20776 Checks for nullness in UMutex::lock()
Adds `U_ASSERT` check before using `m->lock()` to make allocation issues
more apparent at least in debug builds.

There is probably quite a few places like this, but let's try fixing
broken windows.
2019-08-21 11:21:24 -07:00
Jeff Genovy
2cd213ac3b ICU-20689 Fix race condition in UMutex code, leading to random crashes. 2019-07-16 10:41:21 -07:00
Andy Heninger
afa9b9b48e ICU-20588 UMutex, add cleanup of underlying mutexes, and simplify usage model 2019-05-24 13:24:59 -07:00
Andy Heninger
b772241b52 ICU-20520 UMutex refactoring.
- Use STATIC_NEW for mutex creation, to avoid order-of-destruction problems
    by avoiding destruction altogether, while avoiding memory leak reports.

  - Remove UConditionVar, replace with direct use of std::condition_variable
2019-05-07 13:50:49 -07:00
Andy Heninger
bc4bb89af2 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.
2019-03-12 09:52:16 -07:00
Andy Heninger
47d455a725 ICU-20179 Remove platform-specific mutex and atomics implementations.
Remove all POSIX and Win32 specific mutex, atomic and threading implementations
in favor of C++11 std library functions.

Move the related (internal) ICU types and functions into the icu namespace.
2018-11-19 17:17:09 -08:00
Andy Heninger
6c781b1428 ICU-10183 Use std::mutex by default; clean up related dependency check issues. 2018-11-18 16:28:40 -08:00
Andy Heninger
776b9d7f2b ICU-20185 Remove U_USER_ATOMICS_H, U_USER_MUTEX_H, U_USER_MUTEX_CPP 2018-11-13 14:48:48 -08:00
Andy Heninger
f71796d5e5 ICU-10183 Mutexes, add C++11 std::mutex based implementation. 2018-10-31 13:07:19 -07:00
William Zhao
d847a21238 ICU-13275 Merge warning cleanup fixes into trunk
X-SVN-Rev: 40283
2017-07-22 01:11:59 +00:00
Andy Heninger
242e02c388 ICU-12764 icu4c utf-8 source files, update Copyright notices.
X-SVN-Rev: 39583
2017-01-20 00:20:31 +00:00
Steven R. Loomis
3ea904d734 ICU-12783 umutex patch for cygwin, merge r39417
X-SVN-Rev: 39422
2016-10-04 04:01:33 +00:00
Michael Ow
61607c2773 ICU-12564 Update copyright notice in trunk
X-SVN-Rev: 38848
2016-06-15 18:58:17 +00:00
Yoshito Umaoka
00ca13e126 ICU-12564 Reverted r38761 and r38762, because we want to prepend the Unicode copyright for existing source files, instead of replacing copyright comments.
X-SVN-Rev: 38776
2016-05-31 21:45:07 +00:00
Michael Ow
c9f199a30f ICU-12564 Update copyright notice in ICU4C
X-SVN-Rev: 38761
2016-05-26 22:32:17 +00:00
Andy Heninger
10c2719630 ICU-12524 Remove fragile Windows conditional.
X-SVN-Rev: 38684
2016-05-02 21:03:03 +00:00
Andy Heninger
d3301f2a4e ICU-11599 Adjust atomic ops code to be more compatible with thread sanitizer tools.
X-SVN-Rev: 37326
2015-04-09 23:16:55 +00:00
Andy Heninger
f2c54ff494 ICU-11559 Remove obsolete comment from umtx_initImplPostInit()
X-SVN-Rev: 37094
2015-02-27 18:58:11 +00:00
Andy Heninger
96835f80a5 ICU-10948 Condition Variables, merged from development branch.
X-SVN-Rev: 36101
2014-07-29 23:18:47 +00:00
Steven R. Loomis
b33fbff3e9 ICU-10974 patch: building ICU with clang-cl
X-SVN-Rev: 35952
2014-06-26 01:39:03 +00:00
Andy Heninger
dbcf79f57b ICU-10799 ICU initialization code, review & cleanup.
X-SVN-Rev: 35649
2014-04-23 23:22:13 +00:00
Steven R. Loomis
4c46fa7dd8 ICU-10365 another typo as per r34214
X-SVN-Rev: 34215
2013-09-06 05:01:22 +00:00
Andy Heninger
bb7e5684de ICU-10365 Mutex implementation, use ICU namespace where possible, cleans up urename.
X-SVN-Rev: 34209
2013-09-06 01:41:14 +00:00
Andy Heninger
45561757cc ICU-10182 Build Time mutexes, merge from development branch.
X-SVN-Rev: 34139
2013-08-30 01:23:42 +00:00
Steven R. Loomis
80597323f8 ICU-10331 fix immediate issue on cygwin, mingw still broken. also fix warnings and spaces
X-SVN-Rev: 34133
2013-08-29 21:36:06 +00:00
Andy Heninger
ae87a3acc2 ICU-10051 Mutexes: introduce UInitOnce; remove UMTX_CHECK; replace all uses of UMTX_CHECK. All the directories this time.
X-SVN-Rev: 33788
2013-06-01 03:37:16 +00:00
Andy Heninger
803ac8f33c ICU-9461 Mutex Implementation Rework, merge from devel branch.
X-SVN-Rev: 32530
2012-10-05 21:22:02 +00:00