报告锁错误地通过值传递。

不小心复制包含锁的值可能会导致两个副本均无法正常工作。 通常,此类值应通过指针引用。 这里的锁表示实现 sync.Locker 的类型,例如 sync.Mutexsync.WaitGroup

示例:

type SafeInt struct {
  m sync.Mutex
  i int
}

func (s SafeInt) Inc() { // 互斥被复制
  s.m.Lock()
  s.i++
  s.m.Unlock()
}

在应用添加指针快速修复后:

type SafeInt struct {
  m sync.Mutex
  i int
}

func (s *SafeInt) Inc() {
  s.m.Lock()
  s.i++
  s.m.Unlock()
}