def __init__(self, executor, base_logger):
        super(PBenchTool, self).__init__()
        self.log = base_logger.getChild(self.__class__.__name__)
        self.executor = executor
        self.engine = executor.engine
        self.settings = executor.settings
        self.execution = executor.execution
        self.path = os.path.expanduser(self.settings.get('path', 'phantom'))
        self.modules_path = os.path.expanduser(self.settings.get("modules-path", "/usr/lib/phantom"))
        self.kpi_file = None
        self.stats_file = None
        self.config_file = None
        self.payload_file = None
        self.schedule_file = None
        self.process = None
        self.use_ssl = False
        self.hostname = 'localhost'
        self.port = 80
        self._target = {"scheme": None, "netloc": None}
_get_available_fh returns an unused fh
dataset/ETHPy150Open Blazemeter/taurus/bzt/modules/pbench.py/PBenchTool.__init__--crossover with--dataset/ETHPy150Open williballenthin/python-ntfs/examples/mount/mount.py/NTFSFuseOperations._get_available_fh