Index: libs/libmythtv/DeviceReadBuffer.cpp =================================================================== --- libs/libmythtv/DeviceReadBuffer.cpp.orig +++ libs/libmythtv/DeviceReadBuffer.cpp @@ -330,8 +330,9 @@ bool DeviceReadBuffer::Poll(void) const VERBOSE(VB_IMPORTANT, LOC_ERR + "mingw DeviceReadBuffer::Poll is not implemented"); return false; #else + bool poll_failed = false; bool retval = true; MythTimer timer; timer.start(); @@ -345,12 +346,22 @@ bool DeviceReadBuffer::Poll(void) const int ret = poll(&polls, 1 /*number of polls*/, 10 /*msec*/); if (polls.revents & (POLLERR | POLLHUP | POLLNVAL)) { - VERBOSE(VB_IMPORTANT, LOC + "poll error"); - error = true; - return true; + if (!poll_failed) + { + if (polls.revents & POLLERR) + VERBOSE(VB_IMPORTANT, LOC_ERR + "POLLERR"); + if (polls.revents & POLLHUP) + VERBOSE(VB_IMPORTANT, LOC_ERR + "POLLHUP"); + if (polls.revents & POLLNVAL) + VERBOSE(VB_IMPORTANT, LOC_ERR + "POLLNVAL"); + } + usleep(5000 /*5 ms*/); + poll_failed = true; + continue; } + poll_failed = false; if (!run || !IsOpen() || IsPauseRequested()) { retval = false;