avoid busy loop