diff options
author | Billy Robert O'Neal III <bion@microsoft.com> | 2018-10-19 23:45:45 +0000 |
---|---|---|
committer | Billy Robert O'Neal III <bion@microsoft.com> | 2018-10-19 23:45:45 +0000 |
commit | e04704b9a97a53733b5c3dc43271476d9670e432 (patch) | |
tree | 8c853d751f31172514c2781e2e2e7137498fc808 /llvm/lib/CodeGen/MachineRegisterInfo.cpp | |
parent | 8d947bad093b0920aec2b7cea31da7f723612367 (diff) | |
download | bcm5719-llvm-e04704b9a97a53733b5c3dc43271476d9670e432.tar.gz bcm5719-llvm-e04704b9a97a53733b5c3dc43271476d9670e432.zip |
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
Diffstat (limited to 'llvm/lib/CodeGen/MachineRegisterInfo.cpp')
0 files changed, 0 insertions, 0 deletions