summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface
diff options
context:
space:
mode:
authorFangrui Song <i@maskray.me>2024-08-13 17:02:03 -0700
committerGitHub <noreply@github.com>2024-08-13 17:02:03 -0700
commit9487cf97e31bb9fac14394913b64c60ae60f5e41 (patch)
tree145528e2d5489fdc2f44eaa3016d50579ea5ba6a /lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPlatformPythonInterface
parent5bb379f6f0ed17873a2f500361921f98c112108a (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')
0 files changed, 0 insertions, 0 deletions