add a low-level RDY retry loop