Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/util/util_task.cpp')
-rw-r--r--intern/cycles/util/util_task.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/intern/cycles/util/util_task.cpp b/intern/cycles/util/util_task.cpp
index 4fb61392e92..50c236ac968 100644
--- a/intern/cycles/util/util_task.cpp
+++ b/intern/cycles/util/util_task.cpp
@@ -24,7 +24,7 @@ CCL_NAMESPACE_BEGIN
/* Task Pool */
-TaskPool::TaskPool() : start_time(time_dt()), num_tasks_handled(0)
+TaskPool::TaskPool() : start_time(time_dt()), num_tasks_pushed(0)
{
}
@@ -36,7 +36,7 @@ TaskPool::~TaskPool()
void TaskPool::push(TaskRunFunction &&task)
{
tbb_group.run(std::move(task));
- num_tasks_handled++;
+ num_tasks_pushed++;
}
void TaskPool::wait_work(Summary *stats)
@@ -45,14 +45,19 @@ void TaskPool::wait_work(Summary *stats)
if (stats != NULL) {
stats->time_total = time_dt() - start_time;
- stats->num_tasks_handled = num_tasks_handled;
+ stats->num_tasks_handled = num_tasks_pushed;
}
+
+ num_tasks_pushed = 0;
}
void TaskPool::cancel()
{
- tbb_group.cancel();
- tbb_group.wait();
+ if (num_tasks_pushed > 0) {
+ tbb_group.cancel();
+ tbb_group.wait();
+ num_tasks_pushed = 0;
+ }
}
bool TaskPool::canceled()