diff options
Diffstat (limited to 'tpool/tpool_generic.cc')
-rw-r--r-- | tpool/tpool_generic.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/tpool/tpool_generic.cc b/tpool/tpool_generic.cc index 70325cf9e56..47c19e39baa 100644 --- a/tpool/tpool_generic.cc +++ b/tpool/tpool_generic.cc @@ -441,6 +441,7 @@ bool thread_pool_generic::wait_for_tasks(std::unique_lock<std::mutex> &lk, } } + /** Workers "get next task" routine. @@ -489,6 +490,7 @@ bool thread_pool_generic::get_task(worker_data *thread_var, task **t) void thread_pool_generic::worker_end(worker_data* thread_data) { std::lock_guard<std::mutex> lk(m_mtx); + DBUG_ASSERT(!thread_data->is_long_task()); m_active_threads.erase(thread_data); m_thread_data_cache.put(thread_data); @@ -549,14 +551,13 @@ void thread_pool_generic::maintainence() m_timestamp = std::chrono::system_clock::now(); - m_long_tasks_count = 0; - if (m_task_queue.empty()) { m_last_activity = m_tasks_dequeued + m_wakeups; return; } + m_long_tasks_count = 0; for (auto thread_data = m_active_threads.front(); thread_data; thread_data = thread_data->m_next) |