forked from bartvdbraak/blender
Cleanup: use move semantics for task pool functions
This commit is contained in:
parent
f9d138be51
commit
b7c34c889b
@ -59,9 +59,9 @@ void TaskPool::push(Task *task, bool front)
|
|||||||
TaskScheduler::push(entry, 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)
|
void TaskPool::wait_work(Summary *stats)
|
||||||
@ -478,9 +478,9 @@ void DedicatedTaskPool::push(Task *task, bool front)
|
|||||||
queue_mutex.unlock();
|
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()
|
void DedicatedTaskPool::wait()
|
||||||
|
@ -51,7 +51,7 @@ typedef function<void(int thread_id)> TaskRunFunction;
|
|||||||
class Task {
|
class Task {
|
||||||
public:
|
public:
|
||||||
Task(){};
|
Task(){};
|
||||||
explicit Task(const TaskRunFunction &run_) : run(run_)
|
explicit Task(TaskRunFunction &&run_) : run(run_)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ class TaskPool {
|
|||||||
~TaskPool();
|
~TaskPool();
|
||||||
|
|
||||||
void push(Task *task, bool front = false);
|
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 wait_work(Summary *stats = NULL); /* work and wait until all tasks are done */
|
||||||
void cancel(); /* cancel all tasks, keep worker threads running */
|
void cancel(); /* cancel all tasks, keep worker threads running */
|
||||||
@ -180,7 +180,7 @@ class DedicatedTaskPool {
|
|||||||
~DedicatedTaskPool();
|
~DedicatedTaskPool();
|
||||||
|
|
||||||
void push(Task *task, bool front = false);
|
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 wait(); /* wait until all tasks are done */
|
||||||
void cancel(); /* cancel all tasks, keep worker thread running */
|
void cancel(); /* cancel all tasks, keep worker thread running */
|
||||||
|
Loading…
Reference in New Issue
Block a user