backend: terminate loop if we didn't do IO