]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
fix: Start at least one thread in ThreadPool
authorJoel Rosdahl <joel@rosdahl.net>
Mon, 27 Oct 2025 17:51:10 +0000 (18:51 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Mon, 3 Nov 2025 20:03:29 +0000 (21:03 +0100)
src/ccache/util/threadpool.cpp

index acefbc610a87b3013b9190ab5f09d577a68bf20c..6608dc4db517069db542bfeb5f8f02683f9cb6db 100644 (file)
 
 #include <ccache/util/logging.hpp>
 
+#include <algorithm>
+
 namespace util {
 
 ThreadPool::ThreadPool(size_t number_of_threads, size_t task_queue_max_size)
   : m_task_queue_max_size(task_queue_max_size)
 {
-  m_worker_threads.reserve(number_of_threads);
-  for (size_t i = 0; i < number_of_threads; ++i) {
+  size_t actual_threads = std::max<size_t>(1, number_of_threads);
+  m_worker_threads.reserve(actual_threads);
+  for (size_t i = 0; i < actual_threads; ++i) {
     m_worker_threads.emplace_back(&ThreadPool::worker_thread_main, this);
   }
 }