Change interruptRead() to use nanosleep delays instead of read()ing and waiting for new reports