diff options
| author | Fangrui Song <i@maskray.me> | 2024-08-13 17:02:03 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-13 17:02:03 -0700 |
| commit | 9487cf97e31bb9fac14394913b64c60ae60f5e41 (patch) | |
| tree | 145528e2d5489fdc2f44eaa3016d50579ea5ba6a /lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.h | |
| parent | 5bb379f6f0ed17873a2f500361921f98c112108a (diff) | |
[Support] Restrict ManagedStatic ThreadPoolExecutor to Windows
https://reviews.llvm.org/D70447 switched to `ManagedStatic` to work
around race conditions in MSVC runtimes and the MinGW runtime.
However, `ManagedStatic` is not suitable for other platforms.
However, this workaround is not suitable for other platforms (#66974).
lld::fatal calls exitLld(1), which calls `llvm_shutdown` to destroy
`ManagedStatic` objects. The worker threads will finish and invoke TLS
destructors (glibc `__call_tls_dtors`). This can lead to race conditions
if other threads attempt to access TLS objects that have already been
destroyed.
While lld's early exit mechanism needs more work, I believe Parallel.cpp
should avoid this pitfall as well.
Pull Request: https://github.com/llvm/llvm-project/pull/102989
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface/ScriptedPlatformPythonInterface.h')
0 files changed, 0 insertions, 0 deletions
