İçeriğe geç

Eksik Context İptali (ARCH5034)

Anahtar go.async.missing-context-cancel · Önem warning · Kategori async

context.WithCancel, WithTimeout veya WithDeadline ile oluşturulan bir context’in döndürdüğü cancel fonksiyonu çağrılmazsa (genellikle defer cancel() unutulur) context’in kaynakları sızar.

func Run(parent context.Context) error {
ctx, _ := context.WithTimeout(parent, 5*time.Second)
return doWork(ctx)
}
func Run(parent context.Context) error {
ctx, cancel := context.WithTimeout(parent, 5*time.Second)
defer cancel()
return doWork(ctx)
}

cancel fonksiyonunu yakalayın ve hemen ardından defer cancel() çağırın.