'Spawn new worker threads (not above self.max).'

def grow(self, amount):

    if (self.max > 0):
        budget = max((self.max - len(self._threads)), 0)
    else:
        budget = float('inf')
    n_new = min(amount, budget)
    workers = [self._spawn_worker() for i in range(n_new)]
    while (not self._all(operator.attrgetter('ready'), workers)):
        time.sleep(0.1)
    self._threads.extend(workers)
