Sobes.tech
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.