]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Add to the documentation of the ConsensusAlgorithms functions. 14388/head
authorWolfgang Bangerth <bangerth@colostate.edu>
Wed, 2 Nov 2022 23:11:34 +0000 (17:11 -0600)
committerWolfgang Bangerth <bangerth@colostate.edu>
Fri, 4 Nov 2022 16:42:53 +0000 (10:42 -0600)
include/deal.II/base/mpi_consensus_algorithms.h

index 88cedfae5cebda3bd6aca2260220f5f5746c07f4..8d28cb893fa4a14895d87ce27c1836054949238a 100644 (file)
@@ -526,6 +526,17 @@ namespace Utilities
        *
        * @tparam RequestType The type of the object to be sent.
        * @tparam AnswerType The type of the object to be received.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()`,
+       *   `answer_request()`, and `process_answer()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType, typename AnswerType>
       std::vector<unsigned int>
@@ -562,6 +573,17 @@ namespace Utilities
        *   is to be performed.
        *
        * @tparam RequestType The type of the object to be sent.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()` and
+       *   `process_request()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType>
       std::vector<unsigned int>
@@ -760,6 +782,17 @@ namespace Utilities
        *
        * @tparam RequestType The type of the object to be sent.
        * @tparam AnswerType The type of the object to be received.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()`,
+       *   `answer_request()`, and `process_answer()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType, typename AnswerType>
       std::vector<unsigned int>
@@ -796,6 +829,17 @@ namespace Utilities
        *   is to be performed.
        *
        * @tparam RequestType The type of the object to be sent.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()` and
+       *   `process_request()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType>
       std::vector<unsigned int>
@@ -1029,6 +1073,17 @@ namespace Utilities
        *
        * @tparam RequestType The type of the object to be sent.
        * @tparam AnswerType The type of the object to be received.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()`,
+       *   `answer_request()`, and `process_answer()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType, typename AnswerType>
       std::vector<unsigned int>
@@ -1066,6 +1121,17 @@ namespace Utilities
        *   is to be performed.
        *
        * @tparam RequestType The type of the object to be sent.
+       *
+       * @note Nothing good will generally happen if any of the function
+       *   objects passed as arguments throws an exception when called.
+       *   This is because when that happens, one MPI process will stop
+       *   participating in MPI communications, deadlocking the other
+       *   processes. As a consequence, the `create_request()`
+       *   and `process_request()` functions should
+       *   not throw any exceptions; if they encounter error
+       *   conditions, they should instead call `MPI_Abort()` or use
+       *   another way to reliably print an error message and then
+       *   bring the MPI universe down.
        */
       template <typename RequestType>
       std::vector<unsigned int>

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.