llvm-project/libcxx/src
Louis Dionne 616ef1863f [libc++] Remove race condition in std::async
Summary:
The state associated to the future was set in one thread (with synchronization)
but read in another thread without synchronization, which led to a data race.

https://bugs.llvm.org/show_bug.cgi?id=38181
rdar://problem/42548261

Reviewers: mclow.lists, EricWF

Subscribers: christof, dexonsmith, cfe-commits

Differential Revision: https://reviews.llvm.org/D51170

llvm-svn: 340608
2018-08-24 14:00:59 +00:00
..
experimental Implement <filesystem> 2018-07-27 03:07:09 +00:00
filesystem Implement <filesystem> 2018-07-27 03:07:09 +00:00
include [libc++] Use __int128_t to represent file_time_type. 2018-07-25 20:51:49 +00:00
support [windows] Fix warning about comparing ints of different signs 2018-07-25 18:24:23 +00:00
algorithm.cpp Mark libc++ internal globals with _LIBCPP_SAFE_STATIC. 2016-09-28 22:08:13 +00:00
any.cpp Put the exception classes for experimental::optional and experimental::any back in the dylib for binary compatibility 2018-02-01 18:45:57 +00:00
bind.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
charconv.cpp [libc++][C++17] Elementary string conversions for integral types 2018-08-01 02:38:30 +00:00
chrono.cpp [libc++] Use __int128_t to represent file_time_type. 2018-07-25 20:51:49 +00:00
condition_variable.cpp [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
debug.cpp Fix debug mode build w/o exceptions 2016-12-28 05:20:27 +00:00
exception.cpp [libc++] Replace __sync_* functions with __libcpp_atomic_* functions 2017-09-19 23:18:03 +00:00
functional.cpp [libc++] Add a key function for bad_function_call 2017-03-28 19:33:31 +00:00
future.cpp [libc++] Remove race condition in std::async 2018-08-24 14:00:59 +00:00
hash.cpp
ios.cpp [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
iostream.cpp [libc++] Don't hardcode namespace in manual mangling 2017-08-07 19:59:58 +00:00
locale.cpp Fix locale test data for GLIBC 2.27 and newer. 2018-04-04 04:00:14 +00:00
memory.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
mutex.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
new.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
optional.cpp Put the exception classes for experimental::optional and experimental::any back in the dylib for binary compatibility 2018-02-01 18:45:57 +00:00
random.cpp [libcxx] Support getentropy as a source of randomness for std::random_device 2017-12-01 06:34:33 +00:00
regex.cpp [libcxx] Remove pragmas that were needed to suppress warnings produced 2016-01-28 06:13:36 +00:00
shared_mutex.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
stdexcept.cpp Remove <__refstring> header; Move it into source directory. 2017-07-12 01:38:35 +00:00
string.cpp [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
strstream.cpp Make pbump (internally) handle sizes bigger than MAX_INT. Fixes PR#33725 - thanks to Jonathan Wakely for the report 2017-09-12 15:00:43 +00:00
system_error.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
thread.cpp Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
typeinfo.cpp libcxx: Use vcruntime declarations for typeinfo on Windows. 2018-01-26 01:22:17 +00:00
utility.cpp [libc++] Remove _LIBCPP_BUILDING_XXX macros, which are redundant since _LIBCPP_BUILDING_LIBRARY 2018-08-01 02:08:59 +00:00
valarray.cpp
variant.cpp Implement C++17 <variant>. Patch from Michael Park! 2016-12-02 23:00:05 +00:00
vector.cpp Move external instantiation for __vector_base_common to vector.cpp 2017-06-15 01:53:12 +00:00