Section de code à exécuter séquentiellement. Plus de détails...
#include <arcane/core/SequentialSection.h>
Fonctions membres publiques | |
SequentialSection (IParallelMng *) | |
SequentialSection (ISubDomain *) | |
void | setError (bool is_error) |
Section de code à exécuter séquentiellement.
Une instance de cette classe permet à une partie du code de s'exécuter un peu comme si le code était séquentiel. Le code compris dans la durée de vie de cet objet est d'abord exécuté sur le proc 0, puis si tout est ok sur les autres. Cela permet lorsque le code exécuter est le même partout (par exemple la lecture du jeu de données) de le vérifier une fois et en cas d'erreur d'afficher une seule fois les messages.
Comme les erreurs éventuelles ne sont affichées que par un seul sous-domaine, cette classe ne doit être utilisée que lorsqu'on est certain que tout les sous-domaines font le même traitement faute de quoi les erreurs ne seront pas reconnues.
De plus, comme tous les sous-domaines bloquent tant que le premier sous-domaine n'a pas fini d'exécuter le code, il faut ne faut pas faire d'appel au gestionnaire de parallélisme dans cette partie.
En cas d'erreur, une exception de type ExParallelFatalError est envoyée dans le destructeur.
Définition à la ligne 64 du fichier SequentialSection.h.
Arcane::SequentialSection::SequentialSection | ( | IParallelMng * | pm | ) |
Définition à la ligne 31 du fichier SequentialSection.cc.
Arcane::SequentialSection::SequentialSection | ( | ISubDomain * | sd | ) |
Définition à la ligne 42 du fichier SequentialSection.cc.
Arcane::SequentialSection::~SequentialSection | ( | ) |
Définition à la ligne 53 du fichier SequentialSection.cc.
void Arcane::SequentialSection::setError | ( | bool | is_error | ) |
Définition à la ligne 107 du fichier SequentialSection.cc.