From 77016ad7bf31c8dd6acdbfbb23f3f69599d8fef4 Mon Sep 17 00:00:00 2001 From: Tobias Fuchs Date: Mon, 23 Feb 2015 22:23:24 +0100 Subject: [PATCH] algorithms_cpp: cleanup in parallel scan --- algorithms_cpp/include/embb/algorithms/internal/scan-inl.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/algorithms_cpp/include/embb/algorithms/internal/scan-inl.h b/algorithms_cpp/include/embb/algorithms/internal/scan-inl.h index c4ebc86..571c68d 100644 --- a/algorithms_cpp/include/embb/algorithms/internal/scan-inl.h +++ b/algorithms_cpp/include/embb/algorithms/internal/scan-inl.h @@ -57,12 +57,12 @@ class ScanFunctor { void Action(mtapi::TaskContext&) { if (chunk_first_ == chunk_last_) { - // leaf case -> do work + ChunkDescriptor chunk = partitioner_[chunk_first_]; + RAIIn iter_in = chunk.GetFirst(); + RAIIn last_in = chunk.GetLast(); + RAIOut iter_out = output_iterator_; + // leaf case -> do work if (is_first_pass_) { - ChunkDescriptor chunk = partitioner_[chunk_first_]; - RAIIn iter_in = chunk.GetFirst(); - RAIIn last_in = chunk.GetLast(); - RAIOut iter_out = output_iterator_; ReturnType result = transformation_(*iter_in); *iter_out = result; ++iter_in; @@ -75,10 +75,6 @@ class ScanFunctor { } else { // Second pass - ChunkDescriptor chunk = partitioner_[chunk_first_]; - RAIIn iter_in = chunk.GetFirst(); - RAIIn last_in = chunk.GetLast(); - RAIOut iter_out = output_iterator_; for (; iter_in != last_in; ++iter_in, ++iter_out) { *iter_out = scan_(parent_value_, *iter_out); } -- libgit2 0.26.0