Add ctor to CPUThreadPoolExecutor to enable custom queue sizes
[folly.git] / folly / wangle / concurrent / CPUThreadPoolExecutor.cpp
index 25b2214842b44d7e1dbd45fbb87b16bc62bc8323..fcc835cda400b136d2c32517d62ec7374f113796 100644 (file)
@@ -57,6 +57,18 @@ CPUThreadPoolExecutor::CPUThreadPoolExecutor(
               CPUThreadPoolExecutor::kDefaultMaxQueueSize),
           std::move(threadFactory)) {}
 
+CPUThreadPoolExecutor::CPUThreadPoolExecutor(
+    size_t numThreads,
+    uint32_t numPriorities,
+    size_t maxQueueSize,
+    std::shared_ptr<ThreadFactory> threadFactory)
+    : CPUThreadPoolExecutor(
+          numThreads,
+          folly::make_unique<PriorityLifoSemMPMCQueue<CPUTask>>(
+              numPriorities,
+              maxQueueSize),
+          std::move(threadFactory)) {}
+
 CPUThreadPoolExecutor::~CPUThreadPoolExecutor() {
   stop();
   CHECK(threadsToStop_ == 0);