def METHOD_NAME(self, oids):
    """Mark specific OIDs and descendants of those OIDs as reachable."""
    hi = self.hi
    lo = self.lo
    pass_count = 1
    # this_pass: {oid_hi: IISet32X}
    this_pass = collections.defaultdict(IISet32X)
    for oid in sorted(oids):
        this_pass[oid & hi].add(int(oid & lo))
    while this_pass:
        gc.collect()
        found, next_pass = self._mark_pass(this_pass)
        log.debug(
            "Found %d more referenced object(s) in pass %d",
            found, pass_count)
        if not found:
            break
        self.reachable_count += found
        pass_count += 1
        this_pass = next_pass
    return pass_count