MCPcopy Create free account
hub / github.com/diillson/chatcli / StopThinkingAnimation

Method StopThinkingAnimation

cli/animation_manager.go:146–175  ·  view source on GitHub ↗

StopThinkingAnimation para a animação de forma segura

()

Source from the content-addressed store, hash-verified

144
145// StopThinkingAnimation para a animação de forma segura
146func (am *AnimationManager) StopThinkingAnimation() {
147 am.mu.Lock()
148
149 // Se a animação não está rodando ou já solicitamos parada, apenas retorne
150 if !am.isRunning || am.stopRequested {
151 am.mu.Unlock()
152 return
153 }
154
155 // Marca que solicitamos parada e sinaliza o encerramento
156 am.stopRequested = true
157 am.isRunning = false
158
159 // Mantém referência local ao canal antes de desbloqueá-lo
160 done := am.done
161 am.mu.Unlock()
162
163 // Fecha o canal fora do lock para evitar deadlock
164 close(done)
165
166 // Aguarda a goroutine terminar
167 am.wg.Wait()
168
169 // Garantir limpeza completa do terminal após parar
170 fmt.Print("\033[0m") // Reset de cores
171 _ = os.Stdout.Sync()
172
173 // Adiciona uma nova linha para garantir espaçamento adequado
174 fmt.Println()
175}

Callers 13

executeStreamingTurnMethod · 0.80
executeBufferedTurnMethod · 0.80
RunOnceMethod · 0.80
sendOutputToAIMethod · 0.80
RunOnceMethod · 0.80
finishSpinnerMethod · 0.80
handleNextChunkMethod · 0.80

Calls 3

LockMethod · 0.80
UnlockMethod · 0.80
SyncMethod · 0.80