llvm-project/libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.constr
Billy Robert O'Neal III e04704b9a9 Repair thread-unsafe modifications of n_alive in F.pass.cpp
In this example, the ctor of G runs in the main thread in the expression G(), and also in the copy ctor of G() in the DECAY_COPY inside std::thread. The main thread destroys the G() instance at the semicolon, and the started thread destroys the G() after it returns. Thus there is a race between the threads on the n_alive variable.

The fix is to join with the background thread before attempting to destroy the G in the main thread.

llvm-svn: 344820
2018-10-19 23:45:45 +00:00
..
F.pass.cpp Repair thread-unsafe modifications of n_alive in F.pass.cpp 2018-10-19 23:45:45 +00:00
constr.fail.cpp
copy.fail.cpp
default.pass.cpp
move.pass.cpp Clean up more usages of _LIBCPP_HAS_NO_RVALUE_REFERENCES 2017-03-03 03:43:25 +00:00