From: Peter Munch Date: Mon, 31 May 2021 11:35:55 +0000 (+0200) Subject: RemotePointEvaluation: fix race condition if called multiple times X-Git-Tag: v9.4.0-rc1~1303^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F12363%2Fhead;p=dealii.git RemotePointEvaluation: fix race condition if called multiple times --- diff --git a/include/deal.II/base/mpi_remote_point_evaluation.h b/include/deal.II/base/mpi_remote_point_evaluation.h index 96da515be3..4734b19bd0 100644 --- a/include/deal.II/base/mpi_remote_point_evaluation.h +++ b/include/deal.II/base/mpi_remote_point_evaluation.h @@ -282,6 +282,9 @@ namespace Utilities (void)buffer; (void)evaluation_function; #else + static CollectiveMutex mutex; + CollectiveMutex::ScopedLock lock(mutex, tria->get_communicator()); + output.resize(point_ptrs.back()); buffer.resize(send_permutation.size() * 2); ArrayView buffer_1(buffer.data(), buffer.size() / 2); @@ -399,6 +402,9 @@ namespace Utilities (void)buffer; (void)evaluation_function; #else + static CollectiveMutex mutex; + CollectiveMutex::ScopedLock lock(mutex, tria->get_communicator()); + const auto &ptr = this->get_point_ptrs(); std::map> temp_recv_map;