code: func ThrottleBacklog(limit int, backlogLimit int, backlogTimeout time.Duration) func(http.Handler) http.Handler {
  	if limit < 1 {
  		panic("chi/middleware: Throttle expects limit > 0")
  	}
  
  	if backlogLimit < 0 {
  		panic("chi/middleware: Throttle expects backlogLimit to be positive")
  	}
  
  	t := throttler{
  		tokens:         make(chan token, limit),
  		backlogTokens:  make(chan token, limit+backlogLimit),
  		backlogTimeout: backlogTimeout,
  	}
  
  	// Filling tokens.
  	for i := 0; i < limit+backlogLimit; i++ {
  		if i < limit {
  			t.tokens <- token{}
  		}
  		t.backlogTokens <- token{}
  	}
  
  	fn := func(h http.Handler) http.Handler {
  		t.h = h
  		return &t
  	}
  
  	return fn
  }
docs: // ThrottleBacklog is a middleware that limits number of currently processed
  // requests at a time and provides a backlog for holding a finite number of
  // pending requests.