Bonjour,
J'ai un problème, lié à ces deux bouts de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 def _get_from_server(socketObject, input): stopFetching=False while not stopFetching: try: datas="" while datas == "" or datas[-2:] != "\r\n": datas=datas+socketObject.recv(1024) datas=datas.split("\r\n") for data in datas: if data != "": if data[0:19] == "ERROR :Closing Link": # Message que le serveur nous envoie (parfois) avant de nous déconnecter stopFetching=True input.put(item=data, block=True) except socket.error: # Dans le cas où on n'a rien reçu pass time.sleep(0.1)Ces deux codes sont lancés dans des threads différents.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 def main_thread(output, input, sockets): import Queue while True: try: data=input.get(block=False) if data.error: IO.connect_to_server(sockets, data.serverName, output, input, continueToRun) else: # bla bla bla except Queue.Empty: time.sleep(1)
Et, il semblerait que, lorsque l'on est déconnecté du serveur, l'utilisation du CPU passe à 100% (à moins que ce ne soit l'inverse).
Ce qui m'embête particulièrement, c'est que ce problème survient aléatoirement, la plupart du temps plusieurs jours après le lancement du script.
Avez-vous une idée ?
Merci d'avance,
ProgVal
Partager