Cleanup: use move semantics for task pool functions

This commit is contained in:
Brecht Van Lommel 2020-06-05 10:37:45 +02:00
parent f9d138be51
commit b7c34c889b
2 changed files with 7 additions and 7 deletions

@ -59,9 +59,9 @@ void TaskPool::push(Task *task, bool front)
TaskScheduler::push(entry, front);
}
void TaskPool::push(const TaskRunFunction &run, bool front)
void TaskPool::push(TaskRunFunction &&run, bool front)
{
push(new Task(run), front);
push(new Task(std::move(run)), front);
}
void TaskPool::wait_work(Summary *stats)
@ -478,9 +478,9 @@ void DedicatedTaskPool::push(Task *task, bool front)
queue_mutex.unlock();
}
void DedicatedTaskPool::push(const TaskRunFunction &run, bool front)
void DedicatedTaskPool::push(TaskRunFunction &&run, bool front)
{
push(new Task(run), front);
push(new Task(std::move(run)), front);
}
void DedicatedTaskPool::wait()

@ -51,7 +51,7 @@ typedef function<void(int thread_id)> TaskRunFunction;
class Task {
public:
Task(){};
explicit Task(const TaskRunFunction &run_) : run(run_)
explicit Task(TaskRunFunction &&run_) : run(run_)
{
}
@ -90,7 +90,7 @@ class TaskPool {
~TaskPool();
void push(Task *task, bool front = false);
void push(const TaskRunFunction &run, bool front = false);
void push(TaskRunFunction &&run, bool front = false);
void wait_work(Summary *stats = NULL); /* work and wait until all tasks are done */
void cancel(); /* cancel all tasks, keep worker threads running */
@ -180,7 +180,7 @@ class DedicatedTaskPool {
~DedicatedTaskPool();
void push(Task *task, bool front = false);
void push(const TaskRunFunction &run, bool front = false);
void push(TaskRunFunction &&run, bool front = false);
void wait(); /* wait until all tasks are done */
void cancel(); /* cancel all tasks, keep worker thread running */