Size: a a a

2020 April 09

p

pragus in Go-go!
Tim
Map[string]sync.Mutex{}
А это прямой путь к дедлоку, кмк
источник

T

Tim in Go-go!
pragus
А это прямой путь к дедлоку, кмк
пруф
источник

p

pragus in Go-go!
Tim
пруф
ну вот у тебя что-то вроде

LockStorage struct {
sync.Mutex
lockMap map[string]sync.Mutex
}
источник

p

pragus in Go-go!
чтобы модифицировать запись в Lockstorage, ты делаешь LockStorage.Lock(), потом entry = map[key] и зовёшь entry.Lock()
источник

DP

Daniel Podolsky in Go-go!
а там уже лок
источник

DP

Daniel Podolsky in Go-go!
и превед
источник

p

pragus in Go-go!
и если у тебя entry уже Locked, то всё
источник

p

pragus in Go-go!
угу
источник

T

Tim in Go-go!
Так анлокать после доступа к массиву надо
источник

p

pragus in Go-go!
Tim
Так анлокать после доступа к массиву надо
какому массиву? )
источник

T

Tim in Go-go!
Мапе.
источник

DE

Dmitry Ermakovich 🐍... in Go-go!
pragus
ну вот у тебя что-то вроде

LockStorage struct {
sync.Mutex
lockMap map[string]sync.Mutex
}
а зачем здесь внешний mutex? Лок же нужен только для одинаковых имен
источник

T

Tim in Go-go!
Потому что тогда могут попробовать 2 потока записать в мап одновременно
источник

p

pragus in Go-go!
Tim
Так анлокать после доступа к массиву надо
а всё равно не будет работать, пока мапа не map[string]*sync.Mutex
источник

T

Tim in Go-go!
pragus
а всё равно не будет работать, пока мапа не map[string]*sync.Mutex
+
источник

T

Tim in Go-go!
источник

DE

Dmitry Ermakovich 🐍... in Go-go!
Кстати, ребят, по поводу последних холиваров насчет try-catch и обработки ошибок в Go, есть отличная статья от бывшего мейнтейнера Node.js, автора express и mocha, по поводу причин перехода на Go. Там несколько интересных абзацев про обработку ошибок.
https://medium.com/code-adventures/farewell-node-js-4ba9e7f3e52b
источник

p

pragus in Go-go!
выглядит как дикий оверинжениринг, да еще и большими шансами на ошибку + так себе оно скейлится
источник

T

Tim in Go-go!
если на го для вас 10 строк это оверинжиниринг то ок
источник

VU

Vlad Ulianov in Go-go!
Можете что-то посоветовать для описания гошного апи? Можно ли это автоматизировать для labstack echo framework?

Сваггер тяжеловат, а postman не даёт набить нормальное описание полей и ответы.
источник