Utilisation massive du CPU
Bonjour,
J'ai un problème, lié à ces deux bouts de code :
Code:
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:
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