Size: a a a

2020 April 08

ЛА

Локоть Анатолий... in Go-go!
Убираешь лок - ругается
источник

ЛА

Локоть Анатолий... in Go-go!
Вывод - дело не в локе, видимо
источник

ВС

Владимир Столяров... in Go-go!
Видимо перепутал, да, передавать ссылку не надо
источник

EK

Eduard Korolev in Go-go!
вот полный код для теста. Почему тогда в данном случае рейс есть? https://play.golang.org/p/tirFdsR3CSd
источник

EK

Eduard Korolev in Go-go!
может целое число нельзя лочить? так как оно по значению?
источник

ЛА

Локоть Анатолий... in Go-go!
Код мудреный
источник

ВС

Владимир Столяров... in Go-go!
А, так считывание errorcount надо тоже под мьютекс
источник

EK

Eduard Korolev in Go-go!
Владимир Столяров
А, так считывание errorcount надо тоже под мьютекс
где именно?
источник

ВС

Владимир Столяров... in Go-go!
33 строка (if errorCount...)
источник

EK

Eduard Korolev in Go-go!
почему? race же вот здесь: errorCount = errorCount+1
источник

ВС

Владимир Столяров... in Go-go!
Там отчёт немного мудреный, он показывает все места, где есть взаимодействие с переменной
источник

EK

Eduard Korolev in Go-go!
а как в if мутекс поставить?
источник

EK

Eduard Korolev in Go-go!
весь if обернуть им что ли?
источник

ЛА

Локоть Анатолий... in Go-go!
Владимир Столяров
33 строка (if errorCount...)
+
источник

ЛА

Локоть Анатолий... in Go-go!
Это фиксит проблему
источник

ВС

Владимир Столяров... in Go-go!
Eduard Korolev
а как в if мутекс поставить?
можно что-то такое:
m.Lock()
localErrCount := errorCount
m.Unlock()
if localErrCount >= maxErrors {
источник

ВС

Владимир Столяров... in Go-go!
Но намного проще просто переехать на atomic для такого
источник

EK

Eduard Korolev in Go-go!
спасибо помогло
источник

ЛА

Локоть Анатолий... in Go-go!
Владимир Столяров
Но намного проще просто переехать на atomic для такого
Имхо, атомик не поменяет сути. Все равно в основном треде тоже нужно лок юзать
источник

ЛА

Локоть Анатолий... in Go-go!
Даже если в горутинах будет атомик
источник