[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Final_tag




Il semble que le probleme vient simplement de l'absence de protection
des print_strings lors de la migration. Si le programme migre pendant
l'execution de print_string, il contient dans son envirronnement un
pointeur vers la sortie standard du programme, qui ne peut etre
migree. 

Une solution serait de ne pas autoriser la migration pendant
son execution (utilisation d'une sorte de lock pris par le canal
appelant print_string et partage avec le canal ordonnant la
migration). L'erreur ne se produit pas (du moins, en apparence) dans
le cas du canal recursif car son code est peu plus inefficace, et
l'execution de print_string est moins frequente (par rapport a la
fonction recursive qui passe tout son temps dans print_string).

J'espere que cette explication resoudra votre probleme. 

- Fabrice