From b050e96b936d0ea5de2f319d37eae69484fcc4c7 Mon Sep 17 00:00:00 2001 From: Richard Roberts Date: Mon, 16 Sep 2013 20:59:00 +0000 Subject: [PATCH] Use cleaner function for spawning TBB tasks --- gtsam/base/treeTraversal-inst.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/gtsam/base/treeTraversal-inst.h b/gtsam/base/treeTraversal-inst.h index 9cf9ad41c..6cbb202bf 100644 --- a/gtsam/base/treeTraversal-inst.h +++ b/gtsam/base/treeTraversal-inst.h @@ -155,18 +155,14 @@ namespace gtsam { // Set TBB ref count set_ref_count(1 + (int)roots.size()); // Create data and tasks for our children - FastVector tasks; - tasks.reserve(roots.size()); + tbb::task_list tasks; BOOST_FOREACH(const boost::shared_ptr& root, roots) { - tasks.push_back(new(allocate_child()) + tasks.push_back(*new(allocate_child()) PreOrderTask(root, visitorPre(root, myData), visitorPre, visitorPost, problemSizeThreshold)); } // Spawn tasks - BOOST_FOREACH(PreOrderTask* task, tasks) - spawn(*task); - // Wait for tasks to finish - wait_for_all(); + spawn_and_wait_for_all(tasks); // Return NULL return NULL; }