Опишите, какую задачу решает данный код. Какие проблемы есть в этом решении? Как бы вы переписали этот код?
Как на собесе: 15 минут, ищи всё — гонки, утечки, ошибки, безопасность, стиль. Ссылайся на строки.
review.gogo
1typeEventstruct{2// Some fields here3}45typeEmitterinterface{6Push(Event)7}89typeGatestruct{10thresholdint3211hitsint3212musync.Mutex13emitterEmitter14}1516funcNewGate(thresholdint32,emitterEmitter)*Gate{17return&Gate{18threshold:threshold,19emitter:emitter,20}21}2223func(g*Gate)Push(eEvent){24mu.Lock()25g.hits++2627ifg.hits>=g.threshold{28g.hits=02930gofunc(){31g.emitter.Push(e)32}()33}34mu.Unlock()35}