Sys.exit() et raw_input()

jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 - 25 août 2007 à 17:16
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 - 17 janv. 2008 à 22:59
Bonjour,

Je vous explique mon problème : dans un thread j'ai un sys.exit() et dans le thread principal j'ai un raw_input() pour attendre l'appui d'entrée pour quitter. Le problème c'est que lorsque que sys.exit() est exécuté il ne quitte pas le programme, il faut que j'appui sur Entrée.

J'aimerais savoir d'ou cela vient

JRB
A voir également:

7 réponses

aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
26 août 2007 à 12:12
Tu peut nous donnez le code ?
0
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
26 août 2007 à 12:29
Bin il y a plus de 1000 lignes donc je vais donner juste le thread avec le sys.exit() et celui avec le raw_input()


class ThreadServeur(threading.Thread):

# Initialisation du Thread
def __init__(self, connexion):
threading.Thread.__init__(self)
self.connexion = connexion

# Fonction éxécutée par le Thread
def run(self):

while(1):

# Deconnexion
if self.connexion.recv(5) == "finie":
log(1, lang(34))
log(1, lang(10))
sys.exit()

---------------------------------------------------

touche = raw_input()

# Envoi au serveur
log(0, lang(26))
connexion.send("finie")

# Fermeture des connexions
connexion.close()
pipe.close()

log(0, lang(27))
sys.exit()

Voila mais normalement sys.exit() ne devrait pas tout quitter ?


JRB
0
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
27 août 2007 à 12:25
Le code que tu as mis est illisible (en tous cas chez moi - XP et Internet Explorer 7), mais normalement, le sys.exit() doit se trouver à la fin. Il faut d'abors que tu ferme toute les connections par Thread.close() pluis tu teut mettre un raw_input() suivit de sys.exit() !
Normalement ça doit se fermer !!!
0
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
27 août 2007 à 14:56
Ok je vais essayer en fermant les threads avant

JRB
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
3 sept. 2007 à 11:13
Le problème est il réglé ?
______
Aéra
0
jrbleboss Messages postés 480 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 3 septembre 2007 1
3 sept. 2007 à 11:53
Si je ferme les autres Thread avant de quitter c'est bon

JRB
0
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
17 janv. 2008 à 22:59
pourquoi mettre sys.exit ?

quitte simplement tout tes threads et tes fenetres au lieu, tu me demandras pourquoi, c'est simple, ca evite d'utiliser une bibliotheque de plus, et perso, je prefere que le sript se termine "naturellement", qu'il se ferme par lui meme, lorsqu'il a tout finit ce que il a a faire...

Et puis comme ca ca evite les truc du style des threads qui on pas finit de s'executer et qui crash de fait que le thread parent marche plus...

Mais bon, je trouve que sys.exit doit etre plus utiliser comme arret d'urgence, qu'en penses tu ?

Xeolin
0
Rejoignez-nous