def METHOD_NAME(self, size, timeout: float) -> List[TimerRequest]:
    requests = []
    wait = timeout
    for _ in range(0, size):
        start = time.time()
        try:
            r = self._mp_queue.METHOD_NAME(block=True, timeout=wait)
        except Empty:
            break
        requests.append(r)
        wait = wait - (time.time() - start)
        if wait <= 0:
            break
    return requests