apiID, amount, recipient
                  
                  
                  перед выполненем проверяется бланс api по apiID
                  
                  
                  Проблема в том, что при большом количестве запросов, функция проверки баланса может вернуть не верный баланс. Например, когда пришло пять запросов на перевод одновременно, и данные для подсчета баланса еще не изменились. 
                  
                  
                  Самый просто вариант - это поставить mutex на функцию перевода, но тогда эта функция будет блокироваться для тех для кого не должа, так как у каждго api свой баланс. 
                  
                  
                  
                  
                  
                  Попробовал сделать `map[int]sync.Mutex`, где ключ - это apiID, но так не работает. 
                  
                  
                  
                  
                  
                  Как лучше реализовать, чтобы функция блокировалась в контексте apiID, а не для всех? Под «блокировалась» я подрозумеваю не выполнялась в многопотоке.
                  
                  
                
сделать свою структуру с мутексом и блокировать только ее хранить в мапе по указателю
на сколько я понял ему блокировка по ключам в мапе нужна
Спасибо. А почему по укзателю?
потому что нельзя ссылаться на элементы мапы
Обсуждают сегодня