kamping-site / kamping

KaMPIng: (Near) zero-overhead MPI wrapper for modern C++
https://kamping-site.github.io/kamping/
GNU Lesser General Public License v3.0
24 stars 0 forks source link

Feature/finalize environment if necessary #548

Closed lukashuebner closed 10 months ago

Hespian commented 10 months ago

This seems to have #553 merged which breaks the tests? Other than that, I think it looks good.

lukashuebner commented 10 months ago

This seems to have #553 merged which breaks the tests? Other than that, I think it looks good.

Thank you for the review, Demian :-)

Without #553 this will throw a warning when compiling:

In file included from /home/lukas/projects/kamping/extern/kassert/include/kassert/kassert.hpp:25,
                 from /home/lukas/projects/kamping/tests/collectives/../test_assertions.hpp:44,
                 from /home/lukas/projects/kamping/tests/collectives/mpi_scatter_test.cpp:14:
/home/lukas/projects/kamping/include/kamping/environment.hpp: In instantiation of ‘kamping::Environment<init_finalize_mode>::~Environment() [with kamping::InitMPIMode init_finalize_mode = kamping::InitMPIMode::NoInitFinalize]’:
/home/lukas/projects/kamping/include/kamping/environment.hpp:285:55:   required from here
/home/lukas/projects/kamping/tests/collectives/../test_assertions.hpp:54:17: warning: ‘throw’ will always call ‘terminate’ [-Wterminate]
   54 |                 throw kamping::testing::KassertTestingException(                                                 \
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |                     (kassert::internal::RrefOStringstreamLogger{std::ostringstream{}} << message).stream().str() \
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |                 );                                                                                               \
      |                 ~

My current idea is to just disable this specific warning in the destructor of Environment (see comments in code).