Help with a while loop

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.