def _start_local_queue_process(self):
comm_q = Queue(maxsize=<NUM_LIT:10>)<EOL>self.queue_proc = Process(target=interchange.starter,<EOL>args=(comm_q,),<EOL>kwargs={"<STR_LIT>": (self.outgoing_q.port,<EOL>self.incoming_q.port,<EOL>self.command_client.port),<EOL>"<STR_LIT>": self.worker_ports,<EOL>"<STR_LIT>": self.worker_port_range,<EOL>"<STR_LIT>": "<STR_LIT>".format(self.run_dir, self.label),<EOL>"<STR_LIT>": self.suppress_failure,<EOL>"<STR_LIT>": self.heartbeat_threshold,<EOL>"<STR_LIT>": self.poll_period,<EOL>"<STR_LIT>": logging.DEBUG if self.worker_debug else logging.INFO<EOL>},<EOL>)<EOL>self.queue_proc.start()<EOL>try:<EOL><INDENT>(worker_task_port, worker_result_port) = comm_q.get(block=True, timeout=<NUM_LIT>)<EOL><DEDENT>except queue.Empty:<EOL><INDENT>logger.error("<STR_LIT>")<EOL>raise Exception("<STR_LIT>")<EOL><DEDENT>self.worker_task_url = "<STR_LIT>".format(self.address, worker_task_port)<EOL>self.worker_result_url = "<STR_LIT>".format(self.address, worker_result_port)<EOL>
Starts the interchange process locally

        Starts the interchange process locally and uses an internal command queue to
        get the worker task and result ports that the interchange has bound to.