Junior — Middle
¿Cómo determinar si la ejecución del contexto actual fue interrumpida o cancelada?
sobes.tech AI
Respuesta de la IA
En Go, para determinar si la ejecución del contexto actual ha sido interrumpida o cancelada, se utiliza el método Done() del objeto context.Context. Este método devuelve un canal que se cierra cuando se cancela el contexto. Normalmente, la comprobación se realiza así:
select {
case <-ctx.Done():
// El contexto ha sido cancelado o se ha agotado el tiempo de espera
err := ctx.Err() // context.Canceled o context.DeadlineExceeded
// Manejo de la cancelación
default:
// Continuar trabajando
}
Por lo tanto, si el canal ctx.Done() está cerrado, significa que la ejecución debe detenerse.