All pastes #1567366 Raw Edit

DRB-poll-error.diff

public diff v1 · immutable
#1567366 ·published 2009-09-15 19:10 UTC
rendered paste body
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;