code: async def fuzz_all(self, sub_domain=False, log_file_path=None):
          
          self.logger = self.get_log_file_path(log_file_path)
          try:
              # Rule out wildcard subdomain support/all resources redirect to a 200 page
              response_codes = self._generate_fake_requests(sub_domain)
              self._rule_out_false_positives(response_codes, sub_domain)
  
              if not sub_domain:
                  self.logger.info("{} Fuzzing URLs".format(COLORED_COMBOS.INFO))
              self.logger.info("{} Reading from list: {}".format(COLORED_COMBOS.INFO, self.path_to_wordlist))
              pool = ThreadPool(self.num_threads)
              pool.map(partial(self._fetch, sub_domain=sub_domain), self.wordlist)
              pool.close()
              pool.join()
              if not sub_domain:
                  self.logger.info("{} Done fuzzing URLs".format(COLORED_COMBOS.INFO))
          except FuzzerException as e:
              self.logger.info("{} {}".format(COLORED_COMBOS.BAD, e))
          except ConnectionError as e:
              if "Remote end closed connection without response" in str(e):
                  self.logger.info("{} {}. Target is actively closing connections - will not "
                                   "bruteforce URLs".format(COLORED_COMBOS.BAD, str(e)))
docs: Create a pool of threads and exhaust self.wordlist on self._fetch
          Should be run in an event loop.
          :param sub_domain: Indicate if this is subdomain enumeration or URL busting
          :param log_file_path: Log subdomain enum results to this path.