[Mlir-commits] [lldb] [llvm] [mlir] Split the llvm::ThreadPool into an abstract base class and an implementation (PR #82094)
Mehdi Amini
llvmlistbot at llvm.org
Fri Mar 1 23:33:47 PST 2024
================
@@ -209,25 +231,66 @@ class ThreadPool {
/// Number of threads active for tasks in the given group (only non-zero).
DenseMap<ThreadPoolTaskGroup *, unsigned> ActiveGroups;
-#if LLVM_ENABLE_THREADS // avoids warning for unused variable
/// Signal for the destruction of the pool, asking thread to exit.
bool EnableFlag = true;
-#endif
const ThreadPoolStrategy Strategy;
/// Maximum number of threads to potentially grow this pool to.
const unsigned MaxThreadCount;
};
+/// A non-threaded implementation.
+class SingleThreadExecutor : public ThreadPoolInterface {
----------------
joker-eph wrote:
I just implemented it: now the unit-tests are ran for both the single thread and std::thread implementation (except when LLVM_ENABLE_THREADS=OFF, then only the single-thread implementation is tested).
Can you take a look?
https://github.com/llvm/llvm-project/pull/82094
More information about the Mlir-commits
mailing list