'Create directories, threads and consumers required to perform a w3af
scan. Used both when we init the core and when we want to clear all
the previous results and state from an old scan and start again.
:return: None'

def scan_start_hook(self):

    scans_completed = self.status.scans_completed
    self.status = w3af_core_status(self, scans_completed=scans_completed)
    self.status.start()
    start_profiling(self)
    if (not self._first_scan):
        self.cleanup()
    else:
        self._home_directory()
        self._tmp_directory()
        enable_dns_cache()
    consecutive_number_generator.reset()
    self.strategy = CoreStrategy(self)
    self.strategy.add_observer(DiskSpaceObserver())
    fp_404_db = fingerprint_404_singleton(cleanup=True)
    fp_404_db.set_url_opener(self.uri_opener)
    fp_404_db.set_worker_pool(self.worker_pool)
