Slide 10
Slide 10 text
x/time/rate Ͱॻ͖͠
after
func (s *Writer) Write(p []byte) (int, error) {
if s.limiter == nil {
return s.w.Write(p)
}
n, err := s.w.Write(p)
if err != nil {
return n, err
}
// ͭͱ͜Ζ͚ͩ͜͜
if err := s.limiter.WaitN(s.ctx, n); err != nil {
return n, err
}
return n, err
}