From 1db7c7ef64279ee426f94b218218df87f7bd4d83 Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Tue, 2 Apr 2019 15:22:52 +0200 Subject: [PATCH] Fix MPI_Waitall call in the case of empty processors This allows to plug the synchronization in ConnectivityDispatcher::_buildNewOwner --- src/mesh/ConnectivityDispatcher.cpp | 3 +-- src/utils/Messenger.hpp | 14 ++++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/mesh/ConnectivityDispatcher.cpp b/src/mesh/ConnectivityDispatcher.cpp index 7ac1dbb39..f31fd9e6a 100644 --- a/src/mesh/ConnectivityDispatcher.cpp +++ b/src/mesh/ConnectivityDispatcher.cpp @@ -41,8 +41,7 @@ ConnectivityDispatcher<Dimension>::_buildNewOwner() item_new_owner[l] = cell_new_owner[Jmin]; }); -#warning Add missing synchronize (fix it!) - // synchronize(face_new_owner); + synchronize(item_new_owner); this->_dispatchedInfo<item_type>().m_new_owner = item_new_owner; } } diff --git a/src/utils/Messenger.hpp b/src/utils/Messenger.hpp index 1575c4441..1e32874a7 100644 --- a/src/utils/Messenger.hpp +++ b/src/utils/Messenger.hpp @@ -231,12 +231,14 @@ class Messenger } } - std::vector<MPI_Status> status_list(request_list.size()); - if (MPI_SUCCESS != MPI_Waitall(request_list.size(), &(request_list[0]), &(status_list[0]))) { - // LCOV_EXCL_START - std::cerr << "Communication error!\n"; - std::exit(1); - // LCOV_EXCL_STOP + if (request_list.size()>0) { + std::vector<MPI_Status> status_list(request_list.size()); + if (MPI_SUCCESS != MPI_Waitall(request_list.size(), &(request_list[0]), &(status_list[0]))) { + // LCOV_EXCL_START + std::cerr << "Communication error!\n"; + std::exit(1); + // LCOV_EXCL_STOP + } } #else // PASTIS_HAS_MPI -- GitLab