code: def grow(self, amount):
          
          if self.max > 0:
              budget = max(self.max - len(self._threads), 0)
          else:
              # self.max <= 0 indicates no maximum
              budget = float('inf')
  
          n_new = min(amount, budget)
  
          workers = [self._spawn_worker() for i in range(n_new)]
          while not all(worker.ready for worker in workers):
              time.sleep(.1)
          self._threads.extend(workers)
docs: Spawn new worker threads (not above self.max).