sync.Mutex?Копировать не следует. Копия мьютекса - это новое значение с тем же внутренним состоянием. Если оригинал был заблокирован, копия тоже считается заблокированной.
Попытка Lock() на копии может привести к deadlock или неопределённому поведению. go vet предупреждает о копировании мьютексов.
var mu sync.Mutex
mu2 := mu // копия - опасно
mu2.Lock() // может deadlock
Передавайте мьютекс по указателю или встраивайте в структуру по значению (тогда копировать саму структуру нельзя).