Je connais pas mython, mais c'est un bête problème de concurrence et de POO que tu poses là.
Tu veux pas faire print sur STDOUT.
Tu veux un objet Out qui gère la sortie.
Et tu fais Out.print(self, self.progression)
L'objet (unique) Out, tient une table indexée par objets (d'où le passage de self), et qui pointe vers la progression.
Puis à chaque print, il parcourt la table, et l'affiche
Out.table.each(obj, prog) {
Stdout.printf("%s : %i%n",obj.toString, prog);
}
Bon, c'est du pseudocode, mais l'idée est là...
Vu que l'appelle de méthode, lui, est atomique, pas besoin de lock. Et tu peux laisser l'objet Out afficher sans aucun problème sur stdout, avec ncurses, etc.
# Euh
Posté par Axioplase ıɥs∀ (site web personnel) . En réponse au message Threading : comment faire un sys.stdout sur plusieurs lignes (ou identifier chaque thread) ?. Évalué à 2.
Tu veux pas faire print sur STDOUT.
Tu veux un objet Out qui gère la sortie.
Et tu fais
Out.print(self, self.progression)L'objet (unique) Out, tient une table indexée par objets (d'où le passage de self), et qui pointe vers la progression.
Puis à chaque print, il parcourt la table, et l'affiche
Out.table.each(obj, prog) {
Stdout.printf("%s : %i%n",obj.toString, prog);
}
Bon, c'est du pseudocode, mais l'idée est là...
Vu que l'appelle de méthode, lui, est atomique, pas besoin de lock. Et tu peux laisser l'objet Out afficher sans aucun problème sur stdout, avec ncurses, etc.