This commit is contained in:
gabime
2019-06-19 18:30:50 +03:00
parent 8970fd5d2f
commit 06fb5c7c69
2 changed files with 16 additions and 2 deletions

View File

@@ -11,7 +11,8 @@
namespace spdlog {
namespace details {
SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n)
SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n, std::function<void()> on_thread_start)
: q_(q_max_items)
{
if (threads_n == 0 || threads_n > 1000)
@@ -21,10 +22,20 @@ SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n)
}
for (size_t i = 0; i < threads_n; i++)
{
threads_.emplace_back(&thread_pool::worker_loop_, this);
threads_.emplace_back([this, on_thread_start]
{
on_thread_start();
this->thread_pool::worker_loop_();
});
}
}
SPDLOG_INLINE thread_pool::thread_pool(size_t q_max_items, size_t threads_n):
thread_pool(q_max_items, threads_n, []{})
{
}
// message all threads to terminate gracefully join them
SPDLOG_INLINE thread_pool::~thread_pool()
{