clayborg requested changes to this revision.
clayborg added inline comments.
This revision now requires changes to proceed.
================
Comment at: lldb/source/Core/Debugger.cpp:1969
+llvm::ThreadPool &Debugger::GetThreadPool() {
+ static llvm::ThreadPool threadpool(llvm::optimal_concurrency());
+ return threadpool;
----------------
aganea wrote:
> Ideally this should be explicitly created on the stack & passed along on the
> callstack or in a context, like MLIR does:
> https://github.com/llvm/llvm-project/blob/main/mlir/include/mlir/IR/MLIRContext.h#L48
We need one instance of the thread pool so we can't create on the stack.
Static is not great because of the C++ global destructor chain could try and
use if "main" exits and we still have threads running. I would do something
like the "g_debugger_list_ptr" where you create a static variable in
Debugger.cpp:105 which is a pointer, and we initialize it inside of
Debugger::Initialize() like we do for "g_debugger_list_ptr". Then the thread
pool will not cause shutdown crashes when "main" exits before other threads.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123226/new/
https://reviews.llvm.org/D123226
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits