Durante o teste de um processamento em loop, o sistema travou e percebi que o problema era um loop infinito. O código original não atualizava o valor do contador, então a condição contador < 10 nunca deixava de ser verdadeira, e o programa ficava preso repetindo o mesmo bloco indefinidamente.
A correção foi simples: adicionar o incremento do contador dentro do laço, para que a condição eventualmente se tornasse falsa e o loop terminasse corretamente.
contador = 0
while contador < 10:
print("Processando dados...")
contador += 1 # Atualiza o contador para evitar o loop infinito
Resultado:
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Processando dados...
Assim, o programa imprime a mensagem 10 vezes e encerra normalmente.
Achei interessante ver na prática como um detalhe menor pode travar toda a execução.
Se alguém tiver boas práticas para evitar loops infinitos em aplicações reais, gostaria de ouvir sugestões.