docs: def _get_one_pending_job(self):
          """
          Retrieve a pending job.
  
          :return: A CFGJob instance or None
          """
  
          pending_job_key, pending_job = self._pending_jobs.popitem()
          pending_job_state = pending_job.state
          pending_job_call_stack = pending_job.call_stack
          pending_job_src_block_id = pending_job.src_block_id
          pending_job_src_exit_stmt_idx = pending_job.src_exit_stmt_idx
  
          self._deregister_analysis_job(pending_job.caller_func_addr, pending_job)
  
          # Let's check whether this address has been traced before.
          if pending_job_key in self._nodes:
              node = self._nodes[pending_job_key]
              if node in self.graph:
                  pending_exit_addr = self._block_id_addr(pending_job_key)
                  # That block has been traced before. Let's forget about it
                  l.debug("Target 0x%08x has been traced before. Trying the next one...", pending_exit_addr)
  
                  # However, we should still create the FakeRet edge
                  self._graph_add_edge(pending_job_src_block_id, pending_job_key, jumpkind="Ijk_FakeRet",
                                       stmt_idx=pending_job_src_exit_stmt_idx, ins_addr=pending_job.src_exit_ins_addr)
  
                  return None
  
          pending_job_state.history.jumpkind = 'Ijk_FakeRet'
  
          job = CFGJob(pending_job_state.addr,
                       pending_job_state,
                       self._context_sensitivity_level,
                       src_block_id=pending_job_src_block_id,
                       src_exit_stmt_idx=pending_job_src_exit_stmt_idx,
                       src_ins_addr=pending_job.src_exit_ins_addr,
                       call_stack=pending_job_call_stack,
          )
          l.debug("Tracing a missing return exit %s", self._block_id_repr(pending_job_key))
  
          return job