Temat: Rundy rozproszone - wywołania instancji

Hej, chyba czegoś nie zrozumiałem:)
Jeśli jakaś instancja się wykona, to nie zostaje odpalona potem jeszcze raz? Nie można wielokrotnie odpytywać instancji o jakiś wynik?

Innymi słowy:
czy mogę sobie radośnie wysyłać z instancji 0 po kolei:
PutLL(1, 1);
Send(1);
Receive(1);
PutLL(1,2);
Send(1);
Receive(1);
?
Nie. Instancja to nie wątek/zadanie.
Tak, można wielokrotnie odpytywać.
Tak, możesz w instancji 0 odpalić taki kod.

Myk jest taki, że to Ty masz napisać taki kod, aby pozostałe instancje potrafiły to obsłużyć i po wszystkim się zamknęły.
Instancję można traktować jak program odpalony na zupełnie niezależnym komputerze. Jeśli program się zakończy, nikt go nie wskrzesi, nawet jeśli jakieś komunikaty dla niego przeznaczone do tego komputera przyjdą.
Kod przeznaczony dla niezerowej instancji musi więc robić coś w rodzaju:
while (..cośtam..){
Receive(0);
auto a = GetLL(1);
[..rob coś sensownego...]
PutLL(0,a);
Send(0);
}

Nie zapomnij wyłączyć wszystkich instancji ;-)
Dzięki za klarowną odpowiedź!
Czyli jak rozumiem, przy takiej pętli jak napisałeś powyżej, mogę sobie rozesłać do wszystkich instancji niezerowych na końcu jakiś komunikat, który zakończy działanie tych instancji (odpali w pętli break;) i mało tego - odbierze w instancji zerowej jakieś potwierdzenie (ACK), że się wykonało?:)

Tak, co do pierwszej części zdania, można tak robić. A często, w prostszych przypadkach, da się nawet prościej. Nieraz po prostu z góry każda instancja może wiedzieć, co ma zrobić. Np. kanapkę bez większych problemów zrobisz jednym send z każdej instancji.
Drugiej chyba nie rozumiem;-) Ja bym zakładał, że błędów i dziur w komunikacji nie będzie i nie trzeba się w ręczne potwierdzanie bawić.