28#ifdef TIMPI_ENABLE_EXCEPTIONS
35 timpi_not_implemented();
48 i_initialized_mpi(
false),
49 err_handler_set(
false)
97 <<
"for a threaded run.\n"
109 this->
_ref = std::make_unique<SemiPermanent::Ref>();
129 this->
_comm = std::make_unique<Communicator>();
130 this->
_ref = std::make_unique<SemiPermanent::Ref>();
150#ifdef TIMPI_ENABLE_EXCEPTIONS
151 if (!std::uncaught_exceptions())
166 "Failure when freeing MPI_Errhandler! Continuing..." <<
184 std::cerr <<
"Failure from MPI_Finalize():\n"
void barrier() const
Pause execution until all processors reach a certain point.
MPI_Errhandler my_errhandler
std::unique_ptr< SemiPermanent::Ref > _ref
TIMPIInit(int argc, const char *const *argv, int mpi_thread_requested=0, bool handle_mpi_errors=false, MPI_Comm COMM_WORLD_IN=MPI_COMM_WORLD)
Initialize the library for use, with the command line options provided.
virtual ~TIMPIInit()
Destructor.
const Communicator & comm() const
Returns the Communicator created by this object, which will be a compatibility shim if MPI is not ena...
std::unique_ptr< Communicator > _comm
Tnew cast_int(Told oldvar)
void TIMPI_MPI_Handler(MPI_Comm *, int *,...)