If it was my code I'd write it like this:
void loop()
{
unsigned long start = millis();
while((millis() - start < 8000UL) && (RX == HIGH))
{
}
// when we get here RX is low or 8000ms has elapsed
}
The advantage over the original code is that changes to RX are detected as soon as possible rather then only once per second. I assume you are using an interrupt to update RX.