dune-common 2.9.1
|
detects a thrown exception and communicates to all other processes More...
#include <dune/common/parallel/mpiguard.hh>
Public Member Functions | |
MPIGuard (bool active=true) | |
create an MPIGuard operating on the Communicator of the global Dune::MPIHelper | |
MPIGuard (MPIHelper &m, bool active=true) | |
create an MPIGuard operating on the Communicator of a special Dune::MPIHelper m | |
template<class C > | |
MPIGuard (const C &comm, bool active=true) | |
create an MPIGuard operating on an arbitrary communicator. | |
MPIGuard (const MPI_Comm &comm, bool active=true) | |
~MPIGuard () | |
destroy the guard and check for undetected exceptions | |
void | reactivate () |
reactivate the guard. | |
void | finalize (bool success=true) |
stop the guard. | |
detects a thrown exception and communicates to all other processes
You create a MPIGuard object. If an exception is risen on a process the MPIGuard detects the exception, because the finalize method was not called. When reaching the finalize call all other processes are informed that an error occurred and the MPIGuard throws an exception of type MPIGuardError.
create an MPIGuard operating on the Communicator of the global Dune::MPIHelper
active | should the MPIGuard be active upon creation? |
create an MPIGuard operating on the Communicator of a special Dune::MPIHelper m
create an MPIGuard operating on an arbitrary communicator.
Supported types for the communication object are:
comm | reference to a communication object |
active | should the MPIGuard be active upon creation? |
|
inline |
destroy the guard and check for undetected exceptions
stop the guard.
If no success parameter is passed, the guard assumes that everything worked as planned. All errors are communicated and an exception of type MPIGuardError is thrown if an error (or exception) occurred on any of the processors in the communicator.
success | inform the guard about possible errors |
|
inline |
reactivate the guard.
If the guard is still active finalize(true) is called first.