forked from OSchip/llvm-project
564481aebe
Changed ThreadPoolExecutor to no longer use detached threads and instead to join threads on destruction. This is to prevent intermittent crashing on Windows when doing a normal full exit, e.g. via exit(). Changed ThreadPoolExecutor to be a ManagedStatic so that it can be stopped on llvm_shutdown(). Without this, it would only be stopped in the destructor when doing a full exit. This is required to avoid intermittent crashing on Windows due to a race condition between the ThreadPoolExecutor starting up threads and the process doing a fast exit, e.g. via _exit(). The Windows crashes appear to only occur with the MSVC static runtimes and are more frequent with the debug static runtime. These changes also prevent intermittent deadlocks on exit with the MinGW runtime. Differential Revision: https://reviews.llvm.org/D70447 |
||
---|---|---|
.. | ||
Args.cpp | ||
CMakeLists.txt | ||
DWARF.cpp | ||
ErrorHandler.cpp | ||
Filesystem.cpp | ||
Memory.cpp | ||
Reproduce.cpp | ||
Strings.cpp | ||
TargetOptionsCommandFlags.cpp | ||
Threads.cpp | ||
Timer.cpp | ||
Version.cpp |