Написал такой код. Разумеется, не потоко-безопасный.
...
func (s *Scanner) incrExtCount(ext string) {
_, found := s.stats.extFreq[ext]
if found {
s.stats.extFreq[ext]++
} else {
s.stats.extFreq[ext] = 1
}
}
func (s *Scanner) addPath(path string) {
s.stats.recentPaths.PushFront(path)
s.stats.pathsNum++
if s.stats.pathsNum > MaxPaths {
s.stats.recentPaths.Remove(s.stats.recentPaths.Back())
}
}
...
Я могу обвернуть каждую операцию чтения и записи данных (строку кода) в mutex lock/unlock, но правильно ли это?
Какой тип мьютекса стоит использовать в данном случае?