mirror of
https://github.com/MariaDB/server.git
synced 2025-01-15 19:42:28 +01:00
tpool - misc fixes
This commit is contained in:
parent
c27577a1ad
commit
508bc20a85
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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue