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)
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)
Ces deux codes sont lancés dans des threads différents.

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