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.
Hatalı
Bölüm başlığı “Hatalı”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)}Düzeltme
Bölüm başlığı “Düzeltme”cancel fonksiyonunu yakalayın ve hemen ardından defer cancel() çağırın.