Sızdırılan Eşzamanlılık Tutamacı (ARCH5085)
Anahtar go.performance.leaked-concurrency-handle · Önem warning · Kategori performance
Lock alıp Unlock etmemek ya da iptal yolu olmayan goroutine başlatmak tutamaç sızdırır. Kilidi defer mu.Unlock() ile garanti edin.
Hatalı
Bölüm başlığı “Hatalı”func (c *Cache) Set(k, v string) { c.mu.Lock() if c.closed { return } c.data[k] = v c.mu.Unlock()}func (c *Cache) Set(k, v string) { c.mu.Lock() defer c.mu.Unlock() if c.closed { return } c.data[k] = v}Düzeltme
Bölüm başlığı “Düzeltme”Kilitleri defer mu.Unlock() ile serbest bırakın; goroutine’lere iptal için context geçirin.