Repo created

This commit is contained in:
Fr4nz D13trich 2025-11-22 13:58:55 +01:00
parent 4af19165ec
commit 68073add76
12458 changed files with 12350765 additions and 2 deletions

36
libs/base/thread_pool.hpp Normal file
View file

@ -0,0 +1,36 @@
#pragma once
#include <functional>
namespace threads
{
class IRoutine;
class Thread;
} // namespace threads
namespace base
{
class ThreadPool
{
public:
typedef std::function<void(threads::IRoutine *)> TFinishRoutineFn;
ThreadPool(size_t size, TFinishRoutineFn const & finishFn);
~ThreadPool();
// ThreadPool will not delete routine. You can delete it in TFinishRoutineFn.
void PushBack(threads::IRoutine * routine);
void PushFront(threads::IRoutine * routine);
// - calls Cancel for the current processing routines
// - joins threads
// - calls Cancel for the remains routines in queue
void Stop();
private:
class Impl;
Impl * m_impl;
};
} // namespace base