Sobes.tech
Junior — Middle

Come determinare se l'esecuzione del contesto corrente è stata interrotta o annullata?

sobes.tech AI

Risposta dell'AI

In Go, per determinare se l'esecuzione del contesto corrente è stata interrotta o annullata, si utilizza il metodo Done() dell'oggetto context.Context. Questo metodo restituisce un canale che si chiude quando il contesto viene annullato. La verifica si effettua normalmente così:

select {
case <-ctx.Done():
    // Il contesto è stato annullato o il timeout è scaduto
    err := ctx.Err() // context.Canceled o context.DeadlineExceeded
    // Gestione dell'annullamento
default:
    // Continuare a lavorare
}

Quindi, se il canale ctx.Done() è chiuso, significa che l'esecuzione deve essere interrotta.