docs: def stop(self, sig=signal.SIGINT):
          '''Stop all the workers, and then wait for them'''
          for cpid in self.sandboxes:
              logger.warn('Stopping %i...' % cpid)
              try:
                  os.kill(cpid, sig)
              except OSError:  # pragma: no cover
                  logger.exception('Error stopping %s...' % cpid)
  
          # While we still have children running, wait for them
          # We edit the dictionary during the loop, so we need to copy its keys
          for cpid in list(self.sandboxes):
              try:
                  logger.info('Waiting for %i...' % cpid)
                  pid, status = os.waitpid(cpid, 0)
                  logger.warn('%i stopped with status %i' % (pid, status >> 8))
              except OSError:  # pragma: no cover
                  logger.exception('Error waiting for %i...' % cpid)
              finally:
                  self.sandboxes.pop(cpid, None)