Skip to content
Permalink
Browse files
tpool - misc fixes
  • Loading branch information
vaintroub committed Jan 12, 2020
1 parent c27577a commit 508bc20
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 6 deletions.
@@ -742,17 +742,14 @@ void thread_pool_generic::submit_task(task* task)
/* Notify thread pool that current thread is going to wait */
void thread_pool_generic::wait_begin()
{
if (!tls_worker_data || tls_worker_data->is_long_task() || tls_worker_data->is_waiting())
if (!tls_worker_data || tls_worker_data->is_long_task())
return;
std::unique_lock<std::mutex> lk(m_mtx);
tls_worker_data->m_state |= worker_data::WAITING;
m_waiting_task_count++;

/* Maintain concurrency */
if (m_task_queue.empty())
return;
if (m_active_threads.size() - m_long_tasks_count - m_waiting_task_count < m_concurrency)
maybe_wake_or_create_thread();
maybe_wake_or_create_thread();
}


@@ -1,5 +1,7 @@
#include <tpool.h>

namespace tpool
{
static thread_local tpool::thread_pool* tls_thread_pool;

extern "C" void set_tls_pool(tpool::thread_pool* pool)
@@ -18,4 +20,6 @@ extern "C" void tpool_wait_end()
{
if (tls_thread_pool)
tls_thread_pool->wait_end();
}
}

}

0 comments on commit 508bc20

Please sign in to comment.