um plano de fundo
No artigo anterior, falei sobre o uso do singleflight: [Golang source code: singleflight analysis (1)]; a função principal é evitar a quebra do cache; neste artigo, vamos analisar seu código-fonte.
Duas definições de estrutura de dados
No código-fonte singleflight, três estruturas principais são definidas:
// Group represents a class of work and forms a namespace in
// which units of work can be executed with duplicate suppression.
type Group[T any] struct {
mu sync.Mutex // protects m
m map