From 70f72790965e7a5e5e8ad59601ef1b31427b0280 Mon Sep 17 00:00:00 2001 From: FritzFlorian Date: Fri, 10 May 2019 14:27:29 +0200 Subject: [PATCH] Fix: set correct 'currently executing' in fork_join task. This is required to correctly execute multiple, consecutive wait_for_all calls in one fork_join_sub_task. --- lib/pls/src/internal/scheduling/fork_join_task.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/pls/src/internal/scheduling/fork_join_task.cpp b/lib/pls/src/internal/scheduling/fork_join_task.cpp index f6d9435..115de70 100644 --- a/lib/pls/src/internal/scheduling/fork_join_task.cpp +++ b/lib/pls/src/internal/scheduling/fork_join_task.cpp @@ -21,14 +21,10 @@ fork_join_sub_task::fork_join_sub_task(const fork_join_sub_task &other) : void fork_join_sub_task::execute() { PROFILE_WORK_BLOCK("execute sub_task") + auto last_executing = tbb_task_->currently_executing_; tbb_task_->currently_executing_ = this; - if (executed) { - PLS_ERROR("Double Execution!") - } - executed = true; - executed_at = base::this_thread::state()->id_; execute_internal(); - tbb_task_->currently_executing_ = nullptr; + tbb_task_->currently_executing_ = last_executing; PROFILE_END_BLOCK wait_for_all(); -- libgit2 0.26.0