From c05cda6be4799c2b50df261751edd14d4f09cb2d Mon Sep 17 00:00:00 2001 From: Martin Kronbichler Date: Fri, 15 Apr 2016 15:48:56 +0200 Subject: [PATCH] Avoid setting the partitioner at the place of use --- include/deal.II/lac/vector.templates.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/deal.II/lac/vector.templates.h b/include/deal.II/lac/vector.templates.h index a27d46b131..124587345e 100644 --- a/include/deal.II/lac/vector.templates.h +++ b/include/deal.II/lac/vector.templates.h @@ -129,8 +129,9 @@ namespace internal if (vec_size >= 4*internal::Vector::minimum_parallel_grain_size && MultithreadInfo::n_threads() > 1) { - if (partitioner.get() == NULL) - partitioner.reset(new parallel::internal::TBBPartitioner()); + Assert(partitioner.get() != NULL, + ExcInternalError("Unexpected initialization of Vector that does " + "not set the TBB partitioner to a usable state.")); std_cxx11::shared_ptr tbb_partitioner = partitioner->acquire_one_partitioner(); @@ -878,7 +879,7 @@ void Vector::reinit (const size_type n, // only reset the partitioner if we actually expect a significant vector // size - if (vec_size > 4*internal::Vector::minimum_parallel_grain_size) + if (vec_size >= 4*internal::Vector::minimum_parallel_grain_size) thread_loop_partitioner.reset(new parallel::internal::TBBPartitioner()); } -- 2.39.5