Closed Atlaoui closed 4 years ago
pour le coup normalement c'est déjà le cas. le thread principal de chaque process tourne en boucle sur deux tests qui ne sont pas bloquants, et c'est un thread séparé de celui qui execute les NodeProcess:
while (running.get() || !sendQueue.isEmpty()) {
Status s = comm.iProbe(MPI.ANY_SOURCE, MPI.ANY_TAG);
if (s != null) {
recvMpi(s.getSource(), s.getTag());
}
Message m = sendQueue.poll();
if (m != null) {
sendMpi(m);
}
}
(les deux if à l'intérieur de la boucle)
Par contre ce qui est mal géré affectivement c'est la condition d'arrêt du while
Du coup ça c'est bon
je me demander si ce serais pas trop compliquer de déplacer les wait qui ce font au niveau de Mpi dans des thread et d'avoir une condition de wait dans la boucle pour avoir un exit qui fonctionne quelque soit le momment d'appel