[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